diff options
author | Shai Barack <shayba@google.com> | 2015-04-06 18:31:40 -0700 |
---|---|---|
committer | Shai Barack <shayba@google.com> | 2015-04-06 18:31:40 -0700 |
commit | 47a4bc047d6d8f358d33f1fcb2b5c32ce7a844f7 (patch) | |
tree | 216e8b2c7fcc693592fd3767ff8f191ccf95798d | |
parent | 12366d0e125392b49c742d0c13c321b2202dbdd4 (diff) | |
download | leveldb-47a4bc047d6d8f358d33f1fcb2b5c32ce7a844f7.tar.gz |
Reorganize external/leveldb
Change-Id: I63075880dc5a62eff5c67c1e7d4f1e0149f6e745
-rw-r--r-- | Android.mk | 25 | ||||
-rw-r--r-- | db/fault_injection_test.cc | 542 | ||||
-rw-r--r-- | leveldb-1.18/.gitignore (renamed from leveldb-master/.gitignore) | 0 | ||||
-rw-r--r-- | leveldb-1.18/AUTHORS (renamed from AUTHORS) | 0 | ||||
-rw-r--r-- | leveldb-1.18/CONTRIBUTING.md (renamed from CONTRIBUTING.md) | 0 | ||||
-rw-r--r-- | leveldb-1.18/LICENSE (renamed from LICENSE) | 0 | ||||
-rw-r--r-- | leveldb-1.18/Makefile (renamed from Makefile) | 4 | ||||
-rw-r--r-- | leveldb-1.18/NEWS (renamed from NEWS) | 0 | ||||
-rw-r--r-- | leveldb-1.18/README | 51 | ||||
-rw-r--r-- | leveldb-1.18/README.md (renamed from README.md) | 0 | ||||
-rw-r--r-- | leveldb-1.18/TODO (renamed from TODO) | 0 | ||||
-rwxr-xr-x | leveldb-1.18/build_detect_platform (renamed from build_detect_platform) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/autocompact_test.cc (renamed from db/autocompact_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/builder.cc (renamed from db/builder.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/builder.h (renamed from db/builder.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/c.cc (renamed from db/c.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/c_test.c (renamed from db/c_test.c) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/corruption_test.cc (renamed from db/corruption_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/db_bench.cc (renamed from db/db_bench.cc) | 15 | ||||
-rw-r--r-- | leveldb-1.18/db/db_impl.cc (renamed from db/db_impl.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/db_impl.h (renamed from db/db_impl.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/db_iter.cc (renamed from db/db_iter.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/db_iter.h (renamed from db/db_iter.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/db_test.cc (renamed from db/db_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/dbformat.cc (renamed from db/dbformat.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/dbformat.h (renamed from db/dbformat.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/dbformat_test.cc (renamed from db/dbformat_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/dumpfile.cc (renamed from db/dumpfile.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/filename.cc (renamed from db/filename.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/filename.h (renamed from db/filename.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/filename_test.cc (renamed from db/filename_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/leveldb_main.cc (renamed from db/leveldb_main.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/log_format.h (renamed from db/log_format.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/log_reader.cc (renamed from db/log_reader.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/log_reader.h (renamed from db/log_reader.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/log_test.cc (renamed from db/log_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/log_writer.cc (renamed from db/log_writer.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/log_writer.h (renamed from db/log_writer.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/memtable.cc (renamed from db/memtable.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/memtable.h (renamed from db/memtable.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/repair.cc (renamed from db/repair.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/skiplist.h (renamed from db/skiplist.h) | 8 | ||||
-rw-r--r-- | leveldb-1.18/db/skiplist_test.cc (renamed from db/skiplist_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/snapshot.h (renamed from db/snapshot.h) | 1 | ||||
-rw-r--r-- | leveldb-1.18/db/table_cache.cc (renamed from db/table_cache.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/table_cache.h (renamed from db/table_cache.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/version_edit.cc (renamed from db/version_edit.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/version_edit.h (renamed from db/version_edit.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/version_edit_test.cc (renamed from db/version_edit_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/version_set.cc (renamed from db/version_set.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/version_set.h (renamed from db/version_set.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/version_set_test.cc (renamed from db/version_set_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/write_batch.cc (renamed from db/write_batch.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/db/write_batch_internal.h (renamed from db/write_batch_internal.h) | 1 | ||||
-rw-r--r-- | leveldb-1.18/db/write_batch_test.cc (renamed from db/write_batch_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/doc/bench/db_bench_sqlite3.cc (renamed from doc/bench/db_bench_sqlite3.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/doc/bench/db_bench_tree_db.cc (renamed from doc/bench/db_bench_tree_db.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/doc/benchmark.html (renamed from doc/benchmark.html) | 0 | ||||
-rw-r--r-- | leveldb-1.18/doc/doc.css (renamed from doc/doc.css) | 0 | ||||
-rw-r--r-- | leveldb-1.18/doc/impl.html (renamed from doc/impl.html) | 0 | ||||
-rw-r--r-- | leveldb-1.18/doc/index.html (renamed from doc/index.html) | 0 | ||||
-rw-r--r-- | leveldb-1.18/doc/log_format.txt (renamed from doc/log_format.txt) | 0 | ||||
-rw-r--r-- | leveldb-1.18/doc/table_format.txt (renamed from doc/table_format.txt) | 0 | ||||
-rw-r--r-- | leveldb-1.18/helpers/memenv/memenv.cc (renamed from helpers/memenv/memenv.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/helpers/memenv/memenv.h (renamed from helpers/memenv/memenv.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/helpers/memenv/memenv_test.cc (renamed from helpers/memenv/memenv_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/c.h (renamed from include/leveldb/c.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/cache.h (renamed from include/leveldb/cache.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/comparator.h (renamed from include/leveldb/comparator.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/db.h (renamed from include/leveldb/db.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/dumpfile.h (renamed from include/leveldb/dumpfile.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/env.h (renamed from include/leveldb/env.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/filter_policy.h (renamed from include/leveldb/filter_policy.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/iterator.h (renamed from include/leveldb/iterator.h) | 2 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/options.h (renamed from include/leveldb/options.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/slice.h (renamed from include/leveldb/slice.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/status.h (renamed from include/leveldb/status.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/table.h (renamed from include/leveldb/table.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/table_builder.h (renamed from include/leveldb/table_builder.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/include/leveldb/write_batch.h (renamed from include/leveldb/write_batch.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/issues/issue178_test.cc (renamed from issues/issue178_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/issues/issue200_test.cc (renamed from issues/issue200_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/port/README (renamed from port/README) | 0 | ||||
-rw-r--r-- | leveldb-1.18/port/atomic_pointer.h (renamed from port/atomic_pointer.h) | 19 | ||||
-rw-r--r-- | leveldb-1.18/port/port.h (renamed from port/port.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/port/port_example.h (renamed from port/port_example.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/port/port_posix.cc (renamed from port/port_posix.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/port/port_posix.h (renamed from port/port_posix.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/port/thread_annotations.h (renamed from port/thread_annotations.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/port/win/stdint.h (renamed from port/win/stdint.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/block.cc (renamed from table/block.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/block.h (renamed from table/block.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/block_builder.cc (renamed from table/block_builder.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/block_builder.h (renamed from table/block_builder.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/filter_block.cc (renamed from table/filter_block.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/filter_block.h (renamed from table/filter_block.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/filter_block_test.cc (renamed from table/filter_block_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/format.cc (renamed from table/format.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/format.h (renamed from table/format.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/iterator.cc (renamed from table/iterator.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/iterator_wrapper.h (renamed from table/iterator_wrapper.h) | 3 | ||||
-rw-r--r-- | leveldb-1.18/table/merger.cc (renamed from table/merger.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/merger.h (renamed from table/merger.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/table.cc (renamed from table/table.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/table_builder.cc (renamed from table/table_builder.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/table_test.cc (renamed from table/table_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/two_level_iterator.cc (renamed from table/two_level_iterator.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/table/two_level_iterator.h (renamed from table/two_level_iterator.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/arena.cc (renamed from util/arena.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/arena.h (renamed from util/arena.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/arena_test.cc (renamed from util/arena_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/bloom.cc (renamed from util/bloom.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/bloom_test.cc (renamed from util/bloom_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/cache.cc (renamed from util/cache.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/cache_test.cc (renamed from util/cache_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/coding.cc (renamed from util/coding.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/coding.h (renamed from util/coding.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/coding_test.cc (renamed from util/coding_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/comparator.cc (renamed from util/comparator.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/crc32c.cc (renamed from util/crc32c.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/crc32c.h (renamed from util/crc32c.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/crc32c_test.cc (renamed from util/crc32c_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/env.cc (renamed from util/env.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/env_posix.cc (renamed from util/env_posix.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/env_test.cc (renamed from util/env_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/filter_policy.cc (renamed from util/filter_policy.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/hash.cc (renamed from util/hash.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/hash.h (renamed from util/hash.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/hash_test.cc (renamed from util/hash_test.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/histogram.cc (renamed from util/histogram.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/histogram.h (renamed from util/histogram.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/logging.cc (renamed from util/logging.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/logging.h (renamed from util/logging.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/mutexlock.h (renamed from util/mutexlock.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/options.cc (renamed from util/options.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/posix_logger.h (renamed from util/posix_logger.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/random.h (renamed from util/random.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/status.cc (renamed from util/status.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/testharness.cc (renamed from util/testharness.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/testharness.h (renamed from util/testharness.h) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/testutil.cc (renamed from util/testutil.cc) | 0 | ||||
-rw-r--r-- | leveldb-1.18/util/testutil.h (renamed from util/testutil.h) | 0 | ||||
-rw-r--r-- | snappy-1.1.0/AUTHORS | 1 | ||||
-rw-r--r-- | snappy-1.1.0/COPYING | 28 | ||||
-rw-r--r-- | snappy-1.1.0/ChangeLog | 1618 | ||||
-rw-r--r-- | snappy-1.1.0/INSTALL | 370 | ||||
-rw-r--r-- | snappy-1.1.0/Makefile.am | 23 | ||||
-rw-r--r-- | snappy-1.1.0/Makefile.in | 956 | ||||
-rw-r--r-- | snappy-1.1.0/NEWS | 104 | ||||
-rw-r--r-- | snappy-1.1.0/README | 135 | ||||
-rw-r--r-- | snappy-1.1.0/aclocal.m4 | 9738 | ||||
-rwxr-xr-x | snappy-1.1.0/autogen.sh | 7 | ||||
-rwxr-xr-x | snappy-1.1.0/config.guess | 1530 | ||||
-rw-r--r-- | snappy-1.1.0/config.h.in | 128 | ||||
-rwxr-xr-x | snappy-1.1.0/config.sub | 1773 | ||||
-rwxr-xr-x | snappy-1.1.0/configure | 18767 | ||||
-rw-r--r-- | snappy-1.1.0/configure.ac | 126 | ||||
-rwxr-xr-x | snappy-1.1.0/depcomp | 688 | ||||
-rw-r--r-- | snappy-1.1.0/format_description.txt | 110 | ||||
-rw-r--r-- | snappy-1.1.0/framing_format.txt | 124 | ||||
-rwxr-xr-x | snappy-1.1.0/install-sh | 527 | ||||
-rw-r--r-- | snappy-1.1.0/ltmain.sh | 9661 | ||||
-rw-r--r-- | snappy-1.1.0/m4/gtest.m4 | 74 | ||||
-rwxr-xr-x | snappy-1.1.0/missing | 331 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-c.cc | 90 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-c.h | 138 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-internal.h | 150 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-sinksource.cc | 71 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-sinksource.h | 137 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-stubs-internal.cc | 42 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-stubs-internal.h | 491 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-stubs-public.h | 85 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-stubs-public.h.in | 85 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-test.cc | 602 | ||||
-rw-r--r-- | snappy-1.1.0/snappy-test.h | 584 | ||||
-rw-r--r-- | snappy-1.1.0/snappy.cc | 1119 | ||||
-rw-r--r-- | snappy-1.1.0/snappy.h | 163 | ||||
-rw-r--r-- | snappy-1.1.0/snappy_unittest.cc | 1157 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/alice29.txt | 3609 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/asyoulik.txt | 4122 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/baddata1.snappy | bin | 0 -> 27512 bytes | |||
-rw-r--r-- | snappy-1.1.0/testdata/baddata2.snappy | bin | 0 -> 27483 bytes | |||
-rw-r--r-- | snappy-1.1.0/testdata/baddata3.snappy | bin | 0 -> 28384 bytes | |||
-rw-r--r-- | snappy-1.1.0/testdata/cp.html | 645 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/fields.c | 431 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/geo.protodata | bin | 0 -> 118588 bytes | |||
-rw-r--r-- | snappy-1.1.0/testdata/grammar.lsp | 94 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/house.jpg | bin | 0 -> 126958 bytes | |||
-rw-r--r-- | snappy-1.1.0/testdata/html | 1 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/html_x_4 | 1 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/kennedy.xls | bin | 0 -> 1029744 bytes | |||
-rw-r--r-- | snappy-1.1.0/testdata/kppkn.gtb | bin | 0 -> 184320 bytes | |||
-rw-r--r-- | snappy-1.1.0/testdata/lcet10.txt | 7519 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/mapreduce-osdi-1.pdf | bin | 0 -> 94330 bytes | |||
-rw-r--r-- | snappy-1.1.0/testdata/plrabn12.txt | 10699 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/ptt5 | bin | 0 -> 513216 bytes | |||
-rw-r--r-- | snappy-1.1.0/testdata/sum | bin | 0 -> 38240 bytes | |||
-rw-r--r-- | snappy-1.1.0/testdata/urls.10K | 10000 | ||||
-rw-r--r-- | snappy-1.1.0/testdata/xargs.1 | 112 |
199 files changed, 89043 insertions, 594 deletions
@@ -1,23 +1,20 @@ -# Copyright 2013 Google, Inc. - LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := leveldb_static -LOCAL_MODULE_TAGS := optional +LOCAL_MODULE := leveldb +LOCAL_CFLAGS := -D_REENTRANT -DOS_ANDROID -DLEVELDB_PLATFORM_POSIX -DNDEBUG -DSNAPPY +LOCAL_CPP_EXTENSION := .cc +LOCAL_C_INCLUDES := $(LOCAL_PATH)/leveldb-1.18 $(LOCAL_PATH)/leveldb-1.18/include $(LOCAL_PATH)/snappy-1.1.0 +LOCAL_SRC_FILES := leveldb-1.18/db/builder.cc leveldb-1.18/db/c.cc leveldb-1.18/db/db_impl.cc leveldb-1.18/db/db_iter.cc leveldb-1.18/db/dbformat.cc leveldb-1.18/db/filename.cc leveldb-1.18/db/log_reader.cc leveldb-1.18/db/log_writer.cc leveldb-1.18/db/memtable.cc leveldb-1.18/db/repair.cc leveldb-1.18/db/table_cache.cc leveldb-1.18/db/version_edit.cc leveldb-1.18/db/version_set.cc leveldb-1.18/db/write_batch.cc leveldb-1.18/table/block.cc leveldb-1.18/table/block_builder.cc leveldb-1.18/table/filter_block.cc leveldb-1.18/table/format.cc leveldb-1.18/table/iterator.cc leveldb-1.18/table/merger.cc leveldb-1.18/table/table.cc leveldb-1.18/table/table_builder.cc leveldb-1.18/table/two_level_iterator.cc leveldb-1.18/util/arena.cc leveldb-1.18/util/bloom.cc leveldb-1.18/util/cache.cc leveldb-1.18/util/coding.cc leveldb-1.18/util/comparator.cc leveldb-1.18/util/crc32c.cc leveldb-1.18/util/env.cc leveldb-1.18/util/env_posix.cc leveldb-1.18/util/filter_policy.cc leveldb-1.18/util/hash.cc leveldb-1.18/util/histogram.cc leveldb-1.18/util/logging.cc leveldb-1.18/util/options.cc leveldb-1.18/util/status.cc leveldb-1.18/port/port_posix.cc +LOCAL_STATIC_LIBRARIES += snappy -LOCAL_SDK_VERSION := 9 +include $(BUILD_STATIC_LIBRARY) -LOCAL_C_INCLUDES += $(LOCAL_PATH)/include -LOCAL_SRC_FILES := \ - $(call all-c-files-under, db) \ - $(call all-c-files-under, doc) \ - $(call all-c-files-under, helpers) \ - $(call all-c-files-under, issues) \ - $(call all-c-files-under, port) \ - $(call all-c-files-under, table) \ - $(call all-c-files-under, util) +include $(CLEAR_VARS) +LOCAL_MODULE := snappy +LOCAL_CPP_EXTENSION := .cc +LOCAL_SRC_FILES := snappy-1.1.0/snappy.cc snappy-1.1.0/snappy-sinksource.cc include $(BUILD_STATIC_LIBRARY) diff --git a/db/fault_injection_test.cc b/db/fault_injection_test.cc deleted file mode 100644 index 8e3e603..0000000 --- a/db/fault_injection_test.cc +++ /dev/null @@ -1,542 +0,0 @@ -// Copyright 2014 The LevelDB Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. See the AUTHORS file for names of contributors. - -// This test uses a custom Env to keep track of the state of a filesystem as of -// the last "sync". It then checks for data loss errors by purposely dropping -// file data (or entire files) not protected by a "sync". - -#include "leveldb/db.h" - -#include <map> -#include <set> -#include "db/db_impl.h" -#include "db/filename.h" -#include "db/log_format.h" -#include "db/version_set.h" -#include "leveldb/cache.h" -#include "leveldb/env.h" -#include "leveldb/table.h" -#include "leveldb/write_batch.h" -#include "util/logging.h" -#include "util/mutexlock.h" -#include "util/testharness.h" -#include "util/testutil.h" - -namespace leveldb { - -static const int kValueSize = 1000; -static const int kMaxNumValues = 2000; -static const size_t kNumIterations = 3; - -class FaultInjectionTestEnv; - -namespace { - -// Assume a filename, and not a directory name like "/foo/bar/" -static std::string GetDirName(const std::string filename) { - size_t found = filename.find_last_of("/\\"); - if (found == std::string::npos) { - return ""; - } else { - return filename.substr(0, found); - } -} - -Status SyncDir(const std::string& dir) { - // As this is a test it isn't required to *actually* sync this directory. - return Status::OK(); -} - -// A basic file truncation function suitable for this test. -Status Truncate(const std::string& filename, uint64_t length) { - leveldb::Env* env = leveldb::Env::Default(); - - SequentialFile* orig_file; - Status s = env->NewSequentialFile(filename, &orig_file); - if (!s.ok()) - return s; - - char* scratch = new char[length]; - leveldb::Slice result; - s = orig_file->Read(length, &result, scratch); - delete orig_file; - if (s.ok()) { - std::string tmp_name = GetDirName(filename) + "/truncate.tmp"; - WritableFile* tmp_file; - s = env->NewWritableFile(tmp_name, &tmp_file); - if (s.ok()) { - s = tmp_file->Append(result); - delete tmp_file; - if (s.ok()) { - s = env->RenameFile(tmp_name, filename); - } else { - env->DeleteFile(tmp_name); - } - } - } - - delete[] scratch; - - return s; -} - -struct FileState { - std::string filename_; - ssize_t pos_; - ssize_t pos_at_last_sync_; - ssize_t pos_at_last_flush_; - - FileState(const std::string& filename) - : filename_(filename), - pos_(-1), - pos_at_last_sync_(-1), - pos_at_last_flush_(-1) { } - - FileState() : pos_(-1), pos_at_last_sync_(-1), pos_at_last_flush_(-1) {} - - bool IsFullySynced() const { return pos_ <= 0 || pos_ == pos_at_last_sync_; } - - Status DropUnsyncedData() const; -}; - -} // anonymous namespace - -// A wrapper around WritableFile which informs another Env whenever this file -// is written to or sync'ed. -class TestWritableFile : public WritableFile { - public: - TestWritableFile(const std::string& fname, - WritableFile* f, - FaultInjectionTestEnv* env); - virtual ~TestWritableFile(); - virtual Status Append(const Slice& data); - virtual Status Close(); - virtual Status Flush(); - virtual Status Sync(); - - private: - FileState state_; - WritableFile* target_; - bool writable_file_opened_; - FaultInjectionTestEnv* env_; - - Status SyncParent(); -}; - -class FaultInjectionTestEnv : public EnvWrapper { - public: - FaultInjectionTestEnv() : EnvWrapper(Env::Default()), filesystem_active_(true) {} - virtual ~FaultInjectionTestEnv() { } - virtual Status NewWritableFile(const std::string& fname, - WritableFile** result); - virtual Status DeleteFile(const std::string& f); - virtual Status RenameFile(const std::string& s, const std::string& t); - - void WritableFileClosed(const FileState& state); - Status DropUnsyncedFileData(); - Status DeleteFilesCreatedAfterLastDirSync(); - void DirWasSynced(); - bool IsFileCreatedSinceLastDirSync(const std::string& filename); - void ResetState(); - void UntrackFile(const std::string& f); - // Setting the filesystem to inactive is the test equivalent to simulating a - // system reset. Setting to inactive will freeze our saved filesystem state so - // that it will stop being recorded. It can then be reset back to the state at - // the time of the reset. - bool IsFilesystemActive() const { return filesystem_active_; } - void SetFilesystemActive(bool active) { filesystem_active_ = active; } - - private: - port::Mutex mutex_; - std::map<std::string, FileState> db_file_state_; - std::set<std::string> new_files_since_last_dir_sync_; - bool filesystem_active_; // Record flushes, syncs, writes -}; - -TestWritableFile::TestWritableFile(const std::string& fname, - WritableFile* f, - FaultInjectionTestEnv* env) - : state_(fname), - target_(f), - writable_file_opened_(true), - env_(env) { - assert(f != NULL); - state_.pos_ = 0; -} - -TestWritableFile::~TestWritableFile() { - if (writable_file_opened_) { - Close(); - } - delete target_; -} - -Status TestWritableFile::Append(const Slice& data) { - Status s = target_->Append(data); - if (s.ok() && env_->IsFilesystemActive()) { - state_.pos_ += data.size(); - } - return s; -} - -Status TestWritableFile::Close() { - writable_file_opened_ = false; - Status s = target_->Close(); - if (s.ok()) { - env_->WritableFileClosed(state_); - } - return s; -} - -Status TestWritableFile::Flush() { - Status s = target_->Flush(); - if (s.ok() && env_->IsFilesystemActive()) { - state_.pos_at_last_flush_ = state_.pos_; - } - return s; -} - -Status TestWritableFile::SyncParent() { - Status s = SyncDir(GetDirName(state_.filename_)); - if (s.ok()) { - env_->DirWasSynced(); - } - return s; -} - -Status TestWritableFile::Sync() { - if (!env_->IsFilesystemActive()) { - return Status::OK(); - } - // Ensure new files referred to by the manifest are in the filesystem. - Status s = target_->Sync(); - if (s.ok()) { - state_.pos_at_last_sync_ = state_.pos_; - } - if (env_->IsFileCreatedSinceLastDirSync(state_.filename_)) { - Status ps = SyncParent(); - if (s.ok() && !ps.ok()) { - s = ps; - } - } - return s; -} - -Status FaultInjectionTestEnv::NewWritableFile(const std::string& fname, - WritableFile** result) { - WritableFile* actual_writable_file; - Status s = target()->NewWritableFile(fname, &actual_writable_file); - if (s.ok()) { - *result = new TestWritableFile(fname, actual_writable_file, this); - // WritableFile doesn't append to files, so if the same file is opened again - // then it will be truncated - so forget our saved state. - UntrackFile(fname); - MutexLock l(&mutex_); - new_files_since_last_dir_sync_.insert(fname); - } - return s; -} - -Status FaultInjectionTestEnv::DropUnsyncedFileData() { - Status s; - MutexLock l(&mutex_); - for (std::map<std::string, FileState>::const_iterator it = - db_file_state_.begin(); - s.ok() && it != db_file_state_.end(); ++it) { - const FileState& state = it->second; - if (!state.IsFullySynced()) { - s = state.DropUnsyncedData(); - } - } - return s; -} - -void FaultInjectionTestEnv::DirWasSynced() { - MutexLock l(&mutex_); - new_files_since_last_dir_sync_.clear(); -} - -bool FaultInjectionTestEnv::IsFileCreatedSinceLastDirSync( - const std::string& filename) { - MutexLock l(&mutex_); - return new_files_since_last_dir_sync_.find(filename) != - new_files_since_last_dir_sync_.end(); -} - -void FaultInjectionTestEnv::UntrackFile(const std::string& f) { - MutexLock l(&mutex_); - db_file_state_.erase(f); - new_files_since_last_dir_sync_.erase(f); -} - -Status FaultInjectionTestEnv::DeleteFile(const std::string& f) { - Status s = EnvWrapper::DeleteFile(f); - ASSERT_OK(s); - if (s.ok()) { - UntrackFile(f); - } - return s; -} - -Status FaultInjectionTestEnv::RenameFile(const std::string& s, - const std::string& t) { - Status ret = EnvWrapper::RenameFile(s, t); - - if (ret.ok()) { - MutexLock l(&mutex_); - if (db_file_state_.find(s) != db_file_state_.end()) { - db_file_state_[t] = db_file_state_[s]; - db_file_state_.erase(s); - } - - if (new_files_since_last_dir_sync_.erase(s) != 0) { - assert(new_files_since_last_dir_sync_.find(t) == - new_files_since_last_dir_sync_.end()); - new_files_since_last_dir_sync_.insert(t); - } - } - - return ret; -} - -void FaultInjectionTestEnv::ResetState() { - MutexLock l(&mutex_); - db_file_state_.clear(); - new_files_since_last_dir_sync_.clear(); - SetFilesystemActive(true); -} - -Status FaultInjectionTestEnv::DeleteFilesCreatedAfterLastDirSync() { - // Because DeleteFile access this container make a copy to avoid deadlock - mutex_.Lock(); - std::set<std::string> new_files(new_files_since_last_dir_sync_.begin(), - new_files_since_last_dir_sync_.end()); - mutex_.Unlock(); - Status s; - std::set<std::string>::const_iterator it; - for (it = new_files.begin(); s.ok() && it != new_files.end(); ++it) { - s = DeleteFile(*it); - } - return s; -} - -void FaultInjectionTestEnv::WritableFileClosed(const FileState& state) { - MutexLock l(&mutex_); - db_file_state_[state.filename_] = state; -} - -Status FileState::DropUnsyncedData() const { - ssize_t sync_pos = pos_at_last_sync_ == -1 ? 0 : pos_at_last_sync_; - return Truncate(filename_, sync_pos); -} - -class FaultInjectionTest { - public: - enum ExpectedVerifResult { VAL_EXPECT_NO_ERROR, VAL_EXPECT_ERROR }; - enum ResetMethod { RESET_DROP_UNSYNCED_DATA, RESET_DELETE_UNSYNCED_FILES }; - - FaultInjectionTestEnv* env_; - std::string dbname_; - Cache* tiny_cache_; - Options options_; - DB* db_; - - FaultInjectionTest() : env_(NULL), tiny_cache_(NULL), db_(NULL) { NewDB(); } - - ~FaultInjectionTest() { ASSERT_OK(TearDown()); } - - Status NewDB() { - assert(db_ == NULL); - assert(tiny_cache_ == NULL); - assert(env_ == NULL); - - env_ = new FaultInjectionTestEnv(); - - options_ = Options(); - options_.env = env_; - options_.paranoid_checks = true; - - tiny_cache_ = NewLRUCache(100); - options_.block_cache = tiny_cache_; - dbname_ = test::TmpDir() + "/fault_test"; - - options_.create_if_missing = true; - Status s = OpenDB(); - options_.create_if_missing = false; - return s; - } - - Status SetUp() { - Status s = TearDown(); - if (s.ok()) { - s = NewDB(); - } - return s; - } - - Status TearDown() { - CloseDB(); - - Status s = DestroyDB(dbname_, Options()); - - delete tiny_cache_; - tiny_cache_ = NULL; - - delete env_; - env_ = NULL; - - return s; - } - - void Build(int start_idx, int num_vals) { - std::string key_space, value_space; - WriteBatch batch; - for (int i = start_idx; i < start_idx + num_vals; i++) { - Slice key = Key(i, &key_space); - batch.Clear(); - batch.Put(key, Value(i, &value_space)); - WriteOptions options; - ASSERT_OK(db_->Write(options, &batch)); - } - } - - Status ReadValue(int i, std::string* val) const { - std::string key_space, value_space; - Slice key = Key(i, &key_space); - Value(i, &value_space); - ReadOptions options; - return db_->Get(options, key, val); - } - - Status Verify(int start_idx, int num_vals, - ExpectedVerifResult expected) const { - std::string val; - std::string value_space; - Status s; - for (int i = start_idx; i < start_idx + num_vals && s.ok(); i++) { - Value(i, &value_space); - s = ReadValue(i, &val); - if (expected == VAL_EXPECT_NO_ERROR) { - if (s.ok()) { - ASSERT_EQ(value_space, val); - } - } else if (s.ok()) { - fprintf(stderr, "Expected an error at %d, but was OK\n", i); - s = Status::IOError(dbname_, "Expected value error:"); - } else { - s = Status::OK(); // An expected error - } - } - return s; - } - - // Return the ith key - Slice Key(int i, std::string* storage) const { - char buf[100]; - snprintf(buf, sizeof(buf), "%016d", i); - storage->assign(buf, strlen(buf)); - return Slice(*storage); - } - - // Return the value to associate with the specified key - Slice Value(int k, std::string* storage) const { - Random r(k); - return test::RandomString(&r, kValueSize, storage); - } - - Status OpenDB() { - delete db_; - db_ = NULL; - env_->ResetState(); - return DB::Open(options_, dbname_, &db_); - } - - void CloseDB() { - delete db_; - db_ = NULL; - } - - void DeleteAllData() { - Iterator* iter = db_->NewIterator(ReadOptions()); - WriteOptions options; - for (iter->SeekToFirst(); iter->Valid(); iter->Next()) { - ASSERT_OK(db_->Delete(WriteOptions(), iter->key())); - } - - delete iter; - } - - void ResetDBState(ResetMethod reset_method) { - switch (reset_method) { - case RESET_DROP_UNSYNCED_DATA: - ASSERT_OK(env_->DropUnsyncedFileData()); - break; - case RESET_DELETE_UNSYNCED_FILES: - ASSERT_OK(env_->DeleteFilesCreatedAfterLastDirSync()); - break; - default: - assert(false); - } - } - - void PartialCompactTestPreFault(int num_pre_sync, int num_post_sync) { - DeleteAllData(); - Build(0, num_pre_sync); - db_->CompactRange(NULL, NULL); - Build(num_pre_sync, num_post_sync); - } - - void PartialCompactTestReopenWithFault(ResetMethod reset_method, - int num_pre_sync, - int num_post_sync) { - env_->SetFilesystemActive(false); - CloseDB(); - ResetDBState(reset_method); - ASSERT_OK(OpenDB()); - ASSERT_OK(Verify(0, num_pre_sync, FaultInjectionTest::VAL_EXPECT_NO_ERROR)); - ASSERT_OK(Verify(num_pre_sync, num_post_sync, FaultInjectionTest::VAL_EXPECT_ERROR)); - } - - void NoWriteTestPreFault() { - } - - void NoWriteTestReopenWithFault(ResetMethod reset_method) { - CloseDB(); - ResetDBState(reset_method); - ASSERT_OK(OpenDB()); - } -}; - -TEST(FaultInjectionTest, FaultTest) { - Random rnd(0); - ASSERT_OK(SetUp()); - for (size_t idx = 0; idx < kNumIterations; idx++) { - int num_pre_sync = rnd.Uniform(kMaxNumValues); - int num_post_sync = rnd.Uniform(kMaxNumValues); - - PartialCompactTestPreFault(num_pre_sync, num_post_sync); - PartialCompactTestReopenWithFault(RESET_DROP_UNSYNCED_DATA, - num_pre_sync, - num_post_sync); - - NoWriteTestPreFault(); - NoWriteTestReopenWithFault(RESET_DROP_UNSYNCED_DATA); - - PartialCompactTestPreFault(num_pre_sync, num_post_sync); - // No new files created so we expect all values since no files will be - // dropped. - PartialCompactTestReopenWithFault(RESET_DELETE_UNSYNCED_FILES, - num_pre_sync + num_post_sync, - 0); - - NoWriteTestPreFault(); - NoWriteTestReopenWithFault(RESET_DELETE_UNSYNCED_FILES); - } -} - -} // namespace leveldb - -int main(int argc, char** argv) { - return leveldb::test::RunAllTests(); -} diff --git a/leveldb-master/.gitignore b/leveldb-1.18/.gitignore index 0630251..0630251 100644 --- a/leveldb-master/.gitignore +++ b/leveldb-1.18/.gitignore diff --git a/AUTHORS b/leveldb-1.18/AUTHORS index 2439d7a..2439d7a 100644 --- a/AUTHORS +++ b/leveldb-1.18/AUTHORS diff --git a/CONTRIBUTING.md b/leveldb-1.18/CONTRIBUTING.md index cd600ff..cd600ff 100644 --- a/CONTRIBUTING.md +++ b/leveldb-1.18/CONTRIBUTING.md diff --git a/LICENSE b/leveldb-1.18/LICENSE index 8e80208..8e80208 100644 --- a/LICENSE +++ b/leveldb-1.18/LICENSE diff --git a/Makefile b/leveldb-1.18/Makefile index 24f214a..2bd2cad 100644 --- a/Makefile +++ b/leveldb-1.18/Makefile @@ -49,7 +49,6 @@ TESTS = \ db_test \ dbformat_test \ env_test \ - fault_injection_test \ filename_test \ filter_block_test \ hash_test \ @@ -156,9 +155,6 @@ dbformat_test: db/dbformat_test.o $(LIBOBJECTS) $(TESTHARNESS) env_test: util/env_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) util/env_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS) -fault_injection_test: db/fault_injection_test.o $(LIBOBJECTS) $(TESTHARNESS) - $(CXX) $(LDFLAGS) db/fault_injection_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS) - filename_test: db/filename_test.o $(LIBOBJECTS) $(TESTHARNESS) $(CXX) $(LDFLAGS) db/filename_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS) diff --git a/leveldb-1.18/README b/leveldb-1.18/README new file mode 100644 index 0000000..3618ade --- /dev/null +++ b/leveldb-1.18/README @@ -0,0 +1,51 @@ +leveldb: A key-value store +Authors: Sanjay Ghemawat (sanjay@google.com) and Jeff Dean (jeff@google.com) + +The code under this directory implements a system for maintaining a +persistent key/value store. + +See doc/index.html for more explanation. +See doc/impl.html for a brief overview of the implementation. + +The public interface is in include/*.h. Callers should not include or +rely on the details of any other header files in this package. Those +internal APIs may be changed without warning. + +Guide to header files: + +include/db.h + Main interface to the DB: Start here + +include/options.h + Control over the behavior of an entire database, and also + control over the behavior of individual reads and writes. + +include/comparator.h + Abstraction for user-specified comparison function. If you want + just bytewise comparison of keys, you can use the default comparator, + but clients can write their own comparator implementations if they + want custom ordering (e.g. to handle different character + encodings, etc.) + +include/iterator.h + Interface for iterating over data. You can get an iterator + from a DB object. + +include/write_batch.h + Interface for atomically applying multiple updates to a database. + +include/slice.h + A simple module for maintaining a pointer and a length into some + other byte array. + +include/status.h + Status is returned from many of the public interfaces and is used + to report success and various kinds of errors. + +include/env.h + Abstraction of the OS environment. A posix implementation of + this interface is in util/env_posix.cc + +include/table.h +include/table_builder.h + Lower-level modules that most clients probably won't use directly diff --git a/README.md b/leveldb-1.18/README.md index 480affb..480affb 100644 --- a/README.md +++ b/leveldb-1.18/README.md diff --git a/build_detect_platform b/leveldb-1.18/build_detect_platform index bb76c4f..bb76c4f 100755 --- a/build_detect_platform +++ b/leveldb-1.18/build_detect_platform diff --git a/db/autocompact_test.cc b/leveldb-1.18/db/autocompact_test.cc index d20a236..d20a236 100644 --- a/db/autocompact_test.cc +++ b/leveldb-1.18/db/autocompact_test.cc diff --git a/db/builder.cc b/leveldb-1.18/db/builder.cc index f419882..f419882 100644 --- a/db/builder.cc +++ b/leveldb-1.18/db/builder.cc diff --git a/db/builder.h b/leveldb-1.18/db/builder.h index 62431fc..62431fc 100644 --- a/db/builder.h +++ b/leveldb-1.18/db/builder.h diff --git a/db/c.cc b/leveldb-1.18/db/c.cc index 08ff0ad..08ff0ad 100644 --- a/db/c.cc +++ b/leveldb-1.18/db/c.cc diff --git a/db/c_test.c b/leveldb-1.18/db/c_test.c index 7cd5ee0..7cd5ee0 100644 --- a/db/c_test.c +++ b/leveldb-1.18/db/c_test.c diff --git a/db/corruption_test.cc b/leveldb-1.18/db/corruption_test.cc index 96afc68..96afc68 100644 --- a/db/corruption_test.cc +++ b/leveldb-1.18/db/corruption_test.cc diff --git a/db/db_bench.cc b/leveldb-1.18/db/db_bench.cc index e5975bd..705a170 100644 --- a/db/db_bench.cc +++ b/leveldb-1.18/db/db_bench.cc @@ -33,7 +33,6 @@ // readmissing -- read N missing keys in random order // readhot -- read N times in random order from 1% section of DB // seekrandom -- N random seeks -// open -- cost of opening a DB // crc32c -- repeated crc32c of 4K of data // acquireload -- load N*1000 times // Meta operations: @@ -443,11 +442,7 @@ class Benchmark { bool fresh_db = false; int num_threads = FLAGS_threads; - if (name == Slice("open")) { - method = &Benchmark::OpenBench; - num_ /= 10000; - if (num_ < 1) num_ = 1; - } else if (name == Slice("fillseq")) { + if (name == Slice("fillseq")) { fresh_db = true; method = &Benchmark::WriteSeq; } else if (name == Slice("fillbatch")) { @@ -707,14 +702,6 @@ class Benchmark { } } - void OpenBench(ThreadState* thread) { - for (int i = 0; i < num_; i++) { - delete db_; - Open(); - thread->stats.FinishedSingleOp(); - } - } - void WriteSeq(ThreadState* thread) { DoWrite(thread, true); } diff --git a/db/db_impl.cc b/leveldb-1.18/db/db_impl.cc index 49b9595..49b9595 100644 --- a/db/db_impl.cc +++ b/leveldb-1.18/db/db_impl.cc diff --git a/db/db_impl.h b/leveldb-1.18/db/db_impl.h index cfc9981..cfc9981 100644 --- a/db/db_impl.h +++ b/leveldb-1.18/db/db_impl.h diff --git a/db/db_iter.cc b/leveldb-1.18/db/db_iter.cc index 3b2035e..3b2035e 100644 --- a/db/db_iter.cc +++ b/leveldb-1.18/db/db_iter.cc diff --git a/db/db_iter.h b/leveldb-1.18/db/db_iter.h index 04927e9..04927e9 100644 --- a/db/db_iter.h +++ b/leveldb-1.18/db/db_iter.h diff --git a/db/db_test.cc b/leveldb-1.18/db/db_test.cc index 0fed913..0fed913 100644 --- a/db/db_test.cc +++ b/leveldb-1.18/db/db_test.cc diff --git a/db/dbformat.cc b/leveldb-1.18/db/dbformat.cc index 20a7ca4..20a7ca4 100644 --- a/db/dbformat.cc +++ b/leveldb-1.18/db/dbformat.cc diff --git a/db/dbformat.h b/leveldb-1.18/db/dbformat.h index ea897b1..ea897b1 100644 --- a/db/dbformat.h +++ b/leveldb-1.18/db/dbformat.h diff --git a/db/dbformat_test.cc b/leveldb-1.18/db/dbformat_test.cc index 5d82f5d..5d82f5d 100644 --- a/db/dbformat_test.cc +++ b/leveldb-1.18/db/dbformat_test.cc diff --git a/db/dumpfile.cc b/leveldb-1.18/db/dumpfile.cc index 61c47c2..61c47c2 100644 --- a/db/dumpfile.cc +++ b/leveldb-1.18/db/dumpfile.cc diff --git a/db/filename.cc b/leveldb-1.18/db/filename.cc index da32946..da32946 100644 --- a/db/filename.cc +++ b/leveldb-1.18/db/filename.cc diff --git a/db/filename.h b/leveldb-1.18/db/filename.h index 87a7526..87a7526 100644 --- a/db/filename.h +++ b/leveldb-1.18/db/filename.h diff --git a/db/filename_test.cc b/leveldb-1.18/db/filename_test.cc index a32556d..a32556d 100644 --- a/db/filename_test.cc +++ b/leveldb-1.18/db/filename_test.cc diff --git a/db/leveldb_main.cc b/leveldb-1.18/db/leveldb_main.cc index 9f4b7dd..9f4b7dd 100644 --- a/db/leveldb_main.cc +++ b/leveldb-1.18/db/leveldb_main.cc diff --git a/db/log_format.h b/leveldb-1.18/db/log_format.h index a8c06ef..a8c06ef 100644 --- a/db/log_format.h +++ b/leveldb-1.18/db/log_format.h diff --git a/db/log_reader.cc b/leveldb-1.18/db/log_reader.cc index e44b66c..e44b66c 100644 --- a/db/log_reader.cc +++ b/leveldb-1.18/db/log_reader.cc diff --git a/db/log_reader.h b/leveldb-1.18/db/log_reader.h index 6aff791..6aff791 100644 --- a/db/log_reader.h +++ b/leveldb-1.18/db/log_reader.h diff --git a/db/log_test.cc b/leveldb-1.18/db/log_test.cc index dcf0562..dcf0562 100644 --- a/db/log_test.cc +++ b/leveldb-1.18/db/log_test.cc diff --git a/db/log_writer.cc b/leveldb-1.18/db/log_writer.cc index 2da99ac..2da99ac 100644 --- a/db/log_writer.cc +++ b/leveldb-1.18/db/log_writer.cc diff --git a/db/log_writer.h b/leveldb-1.18/db/log_writer.h index a3a954d..a3a954d 100644 --- a/db/log_writer.h +++ b/leveldb-1.18/db/log_writer.h diff --git a/db/memtable.cc b/leveldb-1.18/db/memtable.cc index bfec0a7..bfec0a7 100644 --- a/db/memtable.cc +++ b/leveldb-1.18/db/memtable.cc diff --git a/db/memtable.h b/leveldb-1.18/db/memtable.h index 92e90bb..92e90bb 100644 --- a/db/memtable.h +++ b/leveldb-1.18/db/memtable.h diff --git a/db/repair.cc b/leveldb-1.18/db/repair.cc index 4cd4bb0..4cd4bb0 100644 --- a/db/repair.cc +++ b/leveldb-1.18/db/repair.cc diff --git a/db/skiplist.h b/leveldb-1.18/db/skiplist.h index 8bd7776..ed8b092 100644 --- a/db/skiplist.h +++ b/leveldb-1.18/db/skiplist.h @@ -1,10 +1,10 @@ -// Copyright (c) 2011 The LevelDB Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. See the AUTHORS file for names of contributors. - #ifndef STORAGE_LEVELDB_DB_SKIPLIST_H_ #define STORAGE_LEVELDB_DB_SKIPLIST_H_ +// Copyright (c) 2011 The LevelDB Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. See the AUTHORS file for names of contributors. +// // Thread safety // ------------- // diff --git a/db/skiplist_test.cc b/leveldb-1.18/db/skiplist_test.cc index c78f4b4..c78f4b4 100644 --- a/db/skiplist_test.cc +++ b/leveldb-1.18/db/skiplist_test.cc diff --git a/db/snapshot.h b/leveldb-1.18/db/snapshot.h index 6ed413c..e7f8fd2 100644 --- a/db/snapshot.h +++ b/leveldb-1.18/db/snapshot.h @@ -5,7 +5,6 @@ #ifndef STORAGE_LEVELDB_DB_SNAPSHOT_H_ #define STORAGE_LEVELDB_DB_SNAPSHOT_H_ -#include "db/dbformat.h" #include "leveldb/db.h" namespace leveldb { diff --git a/db/table_cache.cc b/leveldb-1.18/db/table_cache.cc index e3d82cd..e3d82cd 100644 --- a/db/table_cache.cc +++ b/leveldb-1.18/db/table_cache.cc diff --git a/db/table_cache.h b/leveldb-1.18/db/table_cache.h index 8cf4aaf..8cf4aaf 100644 --- a/db/table_cache.h +++ b/leveldb-1.18/db/table_cache.h diff --git a/db/version_edit.cc b/leveldb-1.18/db/version_edit.cc index f10a2d5..f10a2d5 100644 --- a/db/version_edit.cc +++ b/leveldb-1.18/db/version_edit.cc diff --git a/db/version_edit.h b/leveldb-1.18/db/version_edit.h index eaef77b..eaef77b 100644 --- a/db/version_edit.h +++ b/leveldb-1.18/db/version_edit.h diff --git a/db/version_edit_test.cc b/leveldb-1.18/db/version_edit_test.cc index 280310b..280310b 100644 --- a/db/version_edit_test.cc +++ b/leveldb-1.18/db/version_edit_test.cc diff --git a/db/version_set.cc b/leveldb-1.18/db/version_set.cc index aa83df5..aa83df5 100644 --- a/db/version_set.cc +++ b/leveldb-1.18/db/version_set.cc diff --git a/db/version_set.h b/leveldb-1.18/db/version_set.h index 8dc14b8..8dc14b8 100644 --- a/db/version_set.h +++ b/leveldb-1.18/db/version_set.h diff --git a/db/version_set_test.cc b/leveldb-1.18/db/version_set_test.cc index 501e34d..501e34d 100644 --- a/db/version_set_test.cc +++ b/leveldb-1.18/db/version_set_test.cc diff --git a/db/write_batch.cc b/leveldb-1.18/db/write_batch.cc index 33f4a42..33f4a42 100644 --- a/db/write_batch.cc +++ b/leveldb-1.18/db/write_batch.cc diff --git a/db/write_batch_internal.h b/leveldb-1.18/db/write_batch_internal.h index 9448ef7..310a3c8 100644 --- a/db/write_batch_internal.h +++ b/leveldb-1.18/db/write_batch_internal.h @@ -5,7 +5,6 @@ #ifndef STORAGE_LEVELDB_DB_WRITE_BATCH_INTERNAL_H_ #define STORAGE_LEVELDB_DB_WRITE_BATCH_INTERNAL_H_ -#include "db/dbformat.h" #include "leveldb/write_batch.h" namespace leveldb { diff --git a/db/write_batch_test.cc b/leveldb-1.18/db/write_batch_test.cc index 9064e3d..9064e3d 100644 --- a/db/write_batch_test.cc +++ b/leveldb-1.18/db/write_batch_test.cc diff --git a/doc/bench/db_bench_sqlite3.cc b/leveldb-1.18/doc/bench/db_bench_sqlite3.cc index e63aaa8..e63aaa8 100644 --- a/doc/bench/db_bench_sqlite3.cc +++ b/leveldb-1.18/doc/bench/db_bench_sqlite3.cc diff --git a/doc/bench/db_bench_tree_db.cc b/leveldb-1.18/doc/bench/db_bench_tree_db.cc index 4ca381f..4ca381f 100644 --- a/doc/bench/db_bench_tree_db.cc +++ b/leveldb-1.18/doc/bench/db_bench_tree_db.cc diff --git a/doc/benchmark.html b/leveldb-1.18/doc/benchmark.html index c463977..c463977 100644 --- a/doc/benchmark.html +++ b/leveldb-1.18/doc/benchmark.html diff --git a/doc/doc.css b/leveldb-1.18/doc/doc.css index 700c564..700c564 100644 --- a/doc/doc.css +++ b/leveldb-1.18/doc/doc.css diff --git a/doc/impl.html b/leveldb-1.18/doc/impl.html index 6a468be..6a468be 100644 --- a/doc/impl.html +++ b/leveldb-1.18/doc/impl.html diff --git a/doc/index.html b/leveldb-1.18/doc/index.html index 3ed0ed9..3ed0ed9 100644 --- a/doc/index.html +++ b/leveldb-1.18/doc/index.html diff --git a/doc/log_format.txt b/leveldb-1.18/doc/log_format.txt index 4cca5ef..4cca5ef 100644 --- a/doc/log_format.txt +++ b/leveldb-1.18/doc/log_format.txt diff --git a/doc/table_format.txt b/leveldb-1.18/doc/table_format.txt index ca8f9b4..ca8f9b4 100644 --- a/doc/table_format.txt +++ b/leveldb-1.18/doc/table_format.txt diff --git a/helpers/memenv/memenv.cc b/leveldb-1.18/helpers/memenv/memenv.cc index 43ef2e0..43ef2e0 100644 --- a/helpers/memenv/memenv.cc +++ b/leveldb-1.18/helpers/memenv/memenv.cc diff --git a/helpers/memenv/memenv.h b/leveldb-1.18/helpers/memenv/memenv.h index 03b88de..03b88de 100644 --- a/helpers/memenv/memenv.h +++ b/leveldb-1.18/helpers/memenv/memenv.h diff --git a/helpers/memenv/memenv_test.cc b/leveldb-1.18/helpers/memenv/memenv_test.cc index a44310f..a44310f 100644 --- a/helpers/memenv/memenv_test.cc +++ b/leveldb-1.18/helpers/memenv/memenv_test.cc diff --git a/include/leveldb/c.h b/leveldb-1.18/include/leveldb/c.h index 1048fe3..1048fe3 100644 --- a/include/leveldb/c.h +++ b/leveldb-1.18/include/leveldb/c.h diff --git a/include/leveldb/cache.h b/leveldb-1.18/include/leveldb/cache.h index 1a201e5..1a201e5 100644 --- a/include/leveldb/cache.h +++ b/leveldb-1.18/include/leveldb/cache.h diff --git a/include/leveldb/comparator.h b/leveldb-1.18/include/leveldb/comparator.h index 556b984..556b984 100644 --- a/include/leveldb/comparator.h +++ b/leveldb-1.18/include/leveldb/comparator.h diff --git a/include/leveldb/db.h b/leveldb-1.18/include/leveldb/db.h index 4c169bf..4c169bf 100644 --- a/include/leveldb/db.h +++ b/leveldb-1.18/include/leveldb/db.h diff --git a/include/leveldb/dumpfile.h b/leveldb-1.18/include/leveldb/dumpfile.h index 3f97fda..3f97fda 100644 --- a/include/leveldb/dumpfile.h +++ b/leveldb-1.18/include/leveldb/dumpfile.h diff --git a/include/leveldb/env.h b/leveldb-1.18/include/leveldb/env.h index f709514..f709514 100644 --- a/include/leveldb/env.h +++ b/leveldb-1.18/include/leveldb/env.h diff --git a/include/leveldb/filter_policy.h b/leveldb-1.18/include/leveldb/filter_policy.h index 1fba080..1fba080 100644 --- a/include/leveldb/filter_policy.h +++ b/leveldb-1.18/include/leveldb/filter_policy.h diff --git a/include/leveldb/iterator.h b/leveldb-1.18/include/leveldb/iterator.h index da631ed..76aced0 100644 --- a/include/leveldb/iterator.h +++ b/leveldb-1.18/include/leveldb/iterator.h @@ -37,7 +37,7 @@ class Iterator { // Valid() after this call iff the source is not empty. virtual void SeekToLast() = 0; - // Position at the first key in the source that is at or past target. + // Position at the first key in the source that at or past target // The iterator is Valid() after this call iff the source contains // an entry that comes at or past target. virtual void Seek(const Slice& target) = 0; diff --git a/include/leveldb/options.h b/leveldb-1.18/include/leveldb/options.h index 7c9b973..7c9b973 100644 --- a/include/leveldb/options.h +++ b/leveldb-1.18/include/leveldb/options.h diff --git a/include/leveldb/slice.h b/leveldb-1.18/include/leveldb/slice.h index bc36798..bc36798 100644 --- a/include/leveldb/slice.h +++ b/leveldb-1.18/include/leveldb/slice.h diff --git a/include/leveldb/status.h b/leveldb-1.18/include/leveldb/status.h index 11dbd4b..11dbd4b 100644 --- a/include/leveldb/status.h +++ b/leveldb-1.18/include/leveldb/status.h diff --git a/include/leveldb/table.h b/leveldb-1.18/include/leveldb/table.h index a9746c3..a9746c3 100644 --- a/include/leveldb/table.h +++ b/leveldb-1.18/include/leveldb/table.h diff --git a/include/leveldb/table_builder.h b/leveldb-1.18/include/leveldb/table_builder.h index 5fd1dc7..5fd1dc7 100644 --- a/include/leveldb/table_builder.h +++ b/leveldb-1.18/include/leveldb/table_builder.h diff --git a/include/leveldb/write_batch.h b/leveldb-1.18/include/leveldb/write_batch.h index ee9aab6..ee9aab6 100644 --- a/include/leveldb/write_batch.h +++ b/leveldb-1.18/include/leveldb/write_batch.h diff --git a/issues/issue178_test.cc b/leveldb-1.18/issues/issue178_test.cc index 1b1cf8b..1b1cf8b 100644 --- a/issues/issue178_test.cc +++ b/leveldb-1.18/issues/issue178_test.cc diff --git a/issues/issue200_test.cc b/leveldb-1.18/issues/issue200_test.cc index 1cec79f..1cec79f 100644 --- a/issues/issue200_test.cc +++ b/leveldb-1.18/issues/issue200_test.cc diff --git a/port/README b/leveldb-1.18/port/README index 422563e..422563e 100644 --- a/port/README +++ b/leveldb-1.18/port/README diff --git a/port/atomic_pointer.h b/leveldb-1.18/port/atomic_pointer.h index 0f6f05e..073dbf4 100644 --- a/port/atomic_pointer.h +++ b/leveldb-1.18/port/atomic_pointer.h @@ -35,10 +35,10 @@ #define ARCH_CPU_X86_FAMILY 1 #elif defined(__ARMEL__) #define ARCH_CPU_ARM_FAMILY 1 -#elif defined(__aarch64__) -#define ARCH_CPU_ARM64_FAMILY 1 #elif defined(__ppc__) || defined(__powerpc__) || defined(__powerpc64__) #define ARCH_CPU_PPC_FAMILY 1 +#elif defined(__mips__) +#define ARCH_CPU_MIPS_FAMILY 1 #endif namespace leveldb { @@ -94,13 +94,6 @@ inline void MemoryBarrier() { } #define LEVELDB_HAVE_MEMORY_BARRIER -// ARM64 -#elif defined(ARCH_CPU_ARM64_FAMILY) -inline void MemoryBarrier() { - asm volatile("dmb sy" : : : "memory"); -} -#define LEVELDB_HAVE_MEMORY_BARRIER - // PPC #elif defined(ARCH_CPU_PPC_FAMILY) && defined(__GNUC__) inline void MemoryBarrier() { @@ -110,6 +103,13 @@ inline void MemoryBarrier() { } #define LEVELDB_HAVE_MEMORY_BARRIER +// MIPS +#elif defined(ARCH_CPU_MIPS_FAMILY) && defined(__GNUC__) +inline void MemoryBarrier() { + __asm__ __volatile__("sync" : : : "memory"); +} +#define LEVELDB_HAVE_MEMORY_BARRIER + #endif // AtomicPointer built using platform-specific MemoryBarrier() @@ -224,7 +224,6 @@ class AtomicPointer { #undef LEVELDB_HAVE_MEMORY_BARRIER #undef ARCH_CPU_X86_FAMILY #undef ARCH_CPU_ARM_FAMILY -#undef ARCH_CPU_ARM64_FAMILY #undef ARCH_CPU_PPC_FAMILY } // namespace port diff --git a/port/port.h b/leveldb-1.18/port/port.h index e667db4..e667db4 100644 --- a/port/port.h +++ b/leveldb-1.18/port/port.h diff --git a/port/port_example.h b/leveldb-1.18/port/port_example.h index ab9e489..ab9e489 100644 --- a/port/port_example.h +++ b/leveldb-1.18/port/port_example.h diff --git a/port/port_posix.cc b/leveldb-1.18/port/port_posix.cc index 5ba127a..5ba127a 100644 --- a/port/port_posix.cc +++ b/leveldb-1.18/port/port_posix.cc diff --git a/port/port_posix.h b/leveldb-1.18/port/port_posix.h index 89fc222..89fc222 100644 --- a/port/port_posix.h +++ b/leveldb-1.18/port/port_posix.h diff --git a/port/thread_annotations.h b/leveldb-1.18/port/thread_annotations.h index 9470ef5..9470ef5 100644 --- a/port/thread_annotations.h +++ b/leveldb-1.18/port/thread_annotations.h diff --git a/port/win/stdint.h b/leveldb-1.18/port/win/stdint.h index 39edd0d..39edd0d 100644 --- a/port/win/stdint.h +++ b/leveldb-1.18/port/win/stdint.h diff --git a/table/block.cc b/leveldb-1.18/table/block.cc index 43e402c..43e402c 100644 --- a/table/block.cc +++ b/leveldb-1.18/table/block.cc diff --git a/table/block.h b/leveldb-1.18/table/block.h index 2493eb9..2493eb9 100644 --- a/table/block.h +++ b/leveldb-1.18/table/block.h diff --git a/table/block_builder.cc b/leveldb-1.18/table/block_builder.cc index db660cd..db660cd 100644 --- a/table/block_builder.cc +++ b/leveldb-1.18/table/block_builder.cc diff --git a/table/block_builder.h b/leveldb-1.18/table/block_builder.h index 4fbcb33..4fbcb33 100644 --- a/table/block_builder.h +++ b/leveldb-1.18/table/block_builder.h diff --git a/table/filter_block.cc b/leveldb-1.18/table/filter_block.cc index 203e15c..203e15c 100644 --- a/table/filter_block.cc +++ b/leveldb-1.18/table/filter_block.cc diff --git a/table/filter_block.h b/leveldb-1.18/table/filter_block.h index c67d010..c67d010 100644 --- a/table/filter_block.h +++ b/leveldb-1.18/table/filter_block.h diff --git a/table/filter_block_test.cc b/leveldb-1.18/table/filter_block_test.cc index 8c4a474..8c4a474 100644 --- a/table/filter_block_test.cc +++ b/leveldb-1.18/table/filter_block_test.cc diff --git a/table/format.cc b/leveldb-1.18/table/format.cc index aa63144..aa63144 100644 --- a/table/format.cc +++ b/leveldb-1.18/table/format.cc diff --git a/table/format.h b/leveldb-1.18/table/format.h index 6c0b80c..6c0b80c 100644 --- a/table/format.h +++ b/leveldb-1.18/table/format.h diff --git a/table/iterator.cc b/leveldb-1.18/table/iterator.cc index 3d1c87f..3d1c87f 100644 --- a/table/iterator.cc +++ b/leveldb-1.18/table/iterator.cc diff --git a/table/iterator_wrapper.h b/leveldb-1.18/table/iterator_wrapper.h index f410c3f..9e16b3d 100644 --- a/table/iterator_wrapper.h +++ b/leveldb-1.18/table/iterator_wrapper.h @@ -5,9 +5,6 @@ #ifndef STORAGE_LEVELDB_TABLE_ITERATOR_WRAPPER_H_ #define STORAGE_LEVELDB_TABLE_ITERATOR_WRAPPER_H_ -#include "leveldb/iterator.h" -#include "leveldb/slice.h" - namespace leveldb { // A internal wrapper class with an interface similar to Iterator that diff --git a/table/merger.cc b/leveldb-1.18/table/merger.cc index 2dde4dc..2dde4dc 100644 --- a/table/merger.cc +++ b/leveldb-1.18/table/merger.cc diff --git a/table/merger.h b/leveldb-1.18/table/merger.h index 91ddd80..91ddd80 100644 --- a/table/merger.h +++ b/leveldb-1.18/table/merger.h diff --git a/table/table.cc b/leveldb-1.18/table/table.cc index dff8a82..dff8a82 100644 --- a/table/table.cc +++ b/leveldb-1.18/table/table.cc diff --git a/table/table_builder.cc b/leveldb-1.18/table/table_builder.cc index 62002c8..62002c8 100644 --- a/table/table_builder.cc +++ b/leveldb-1.18/table/table_builder.cc diff --git a/table/table_test.cc b/leveldb-1.18/table/table_test.cc index c723bf8..c723bf8 100644 --- a/table/table_test.cc +++ b/leveldb-1.18/table/table_test.cc diff --git a/table/two_level_iterator.cc b/leveldb-1.18/table/two_level_iterator.cc index 7822eba..7822eba 100644 --- a/table/two_level_iterator.cc +++ b/leveldb-1.18/table/two_level_iterator.cc diff --git a/table/two_level_iterator.h b/leveldb-1.18/table/two_level_iterator.h index 629ca34..629ca34 100644 --- a/table/two_level_iterator.h +++ b/leveldb-1.18/table/two_level_iterator.h diff --git a/util/arena.cc b/leveldb-1.18/util/arena.cc index 9367f71..9367f71 100644 --- a/util/arena.cc +++ b/leveldb-1.18/util/arena.cc diff --git a/util/arena.h b/leveldb-1.18/util/arena.h index 73bbf1c..73bbf1c 100644 --- a/util/arena.h +++ b/leveldb-1.18/util/arena.h diff --git a/util/arena_test.cc b/leveldb-1.18/util/arena_test.cc index 58e870e..58e870e 100644 --- a/util/arena_test.cc +++ b/leveldb-1.18/util/arena_test.cc diff --git a/util/bloom.cc b/leveldb-1.18/util/bloom.cc index a27a2ac..a27a2ac 100644 --- a/util/bloom.cc +++ b/leveldb-1.18/util/bloom.cc diff --git a/util/bloom_test.cc b/leveldb-1.18/util/bloom_test.cc index 77fb1b3..77fb1b3 100644 --- a/util/bloom_test.cc +++ b/leveldb-1.18/util/bloom_test.cc diff --git a/util/cache.cc b/leveldb-1.18/util/cache.cc index 8b197bc..8b197bc 100644 --- a/util/cache.cc +++ b/leveldb-1.18/util/cache.cc diff --git a/util/cache_test.cc b/leveldb-1.18/util/cache_test.cc index 4371671..4371671 100644 --- a/util/cache_test.cc +++ b/leveldb-1.18/util/cache_test.cc diff --git a/util/coding.cc b/leveldb-1.18/util/coding.cc index 21e3186..21e3186 100644 --- a/util/coding.cc +++ b/leveldb-1.18/util/coding.cc diff --git a/util/coding.h b/leveldb-1.18/util/coding.h index 3993c4a..3993c4a 100644 --- a/util/coding.h +++ b/leveldb-1.18/util/coding.h diff --git a/util/coding_test.cc b/leveldb-1.18/util/coding_test.cc index 521541e..521541e 100644 --- a/util/coding_test.cc +++ b/leveldb-1.18/util/coding_test.cc diff --git a/util/comparator.cc b/leveldb-1.18/util/comparator.cc index 4b7b572..4b7b572 100644 --- a/util/comparator.cc +++ b/leveldb-1.18/util/comparator.cc diff --git a/util/crc32c.cc b/leveldb-1.18/util/crc32c.cc index 6db9e77..6db9e77 100644 --- a/util/crc32c.cc +++ b/leveldb-1.18/util/crc32c.cc diff --git a/util/crc32c.h b/leveldb-1.18/util/crc32c.h index 1d7e5c0..1d7e5c0 100644 --- a/util/crc32c.h +++ b/leveldb-1.18/util/crc32c.h diff --git a/util/crc32c_test.cc b/leveldb-1.18/util/crc32c_test.cc index 4b957ee..4b957ee 100644 --- a/util/crc32c_test.cc +++ b/leveldb-1.18/util/crc32c_test.cc diff --git a/util/env.cc b/leveldb-1.18/util/env.cc index c2600e9..c2600e9 100644 --- a/util/env.cc +++ b/leveldb-1.18/util/env.cc diff --git a/util/env_posix.cc b/leveldb-1.18/util/env_posix.cc index ad56131..ad56131 100644 --- a/util/env_posix.cc +++ b/leveldb-1.18/util/env_posix.cc diff --git a/util/env_test.cc b/leveldb-1.18/util/env_test.cc index b72cb44..b72cb44 100644 --- a/util/env_test.cc +++ b/leveldb-1.18/util/env_test.cc diff --git a/util/filter_policy.cc b/leveldb-1.18/util/filter_policy.cc index 7b045c8..7b045c8 100644 --- a/util/filter_policy.cc +++ b/leveldb-1.18/util/filter_policy.cc diff --git a/util/hash.cc b/leveldb-1.18/util/hash.cc index ed439ce..ed439ce 100644 --- a/util/hash.cc +++ b/leveldb-1.18/util/hash.cc diff --git a/util/hash.h b/leveldb-1.18/util/hash.h index 8889d56..8889d56 100644 --- a/util/hash.h +++ b/leveldb-1.18/util/hash.h diff --git a/util/hash_test.cc b/leveldb-1.18/util/hash_test.cc index eaa1c92..eaa1c92 100644 --- a/util/hash_test.cc +++ b/leveldb-1.18/util/hash_test.cc diff --git a/util/histogram.cc b/leveldb-1.18/util/histogram.cc index bb95f58..bb95f58 100644 --- a/util/histogram.cc +++ b/leveldb-1.18/util/histogram.cc diff --git a/util/histogram.h b/leveldb-1.18/util/histogram.h index 1ef9f3c..1ef9f3c 100644 --- a/util/histogram.h +++ b/leveldb-1.18/util/histogram.h diff --git a/util/logging.cc b/leveldb-1.18/util/logging.cc index ca6b324..ca6b324 100644 --- a/util/logging.cc +++ b/leveldb-1.18/util/logging.cc diff --git a/util/logging.h b/leveldb-1.18/util/logging.h index 1b450d2..1b450d2 100644 --- a/util/logging.h +++ b/leveldb-1.18/util/logging.h diff --git a/util/mutexlock.h b/leveldb-1.18/util/mutexlock.h index 1ff5a9e..1ff5a9e 100644 --- a/util/mutexlock.h +++ b/leveldb-1.18/util/mutexlock.h diff --git a/util/options.cc b/leveldb-1.18/util/options.cc index 76af5b9..76af5b9 100644 --- a/util/options.cc +++ b/leveldb-1.18/util/options.cc diff --git a/util/posix_logger.h b/leveldb-1.18/util/posix_logger.h index 9741b1a..9741b1a 100644 --- a/util/posix_logger.h +++ b/leveldb-1.18/util/posix_logger.h diff --git a/util/random.h b/leveldb-1.18/util/random.h index ddd51b1..ddd51b1 100644 --- a/util/random.h +++ b/leveldb-1.18/util/random.h diff --git a/util/status.cc b/leveldb-1.18/util/status.cc index a44f35b..a44f35b 100644 --- a/util/status.cc +++ b/leveldb-1.18/util/status.cc diff --git a/util/testharness.cc b/leveldb-1.18/util/testharness.cc index 402fab3..402fab3 100644 --- a/util/testharness.cc +++ b/leveldb-1.18/util/testharness.cc diff --git a/util/testharness.h b/leveldb-1.18/util/testharness.h index da4fe68..da4fe68 100644 --- a/util/testharness.h +++ b/leveldb-1.18/util/testharness.h diff --git a/util/testutil.cc b/leveldb-1.18/util/testutil.cc index bee56bf..bee56bf 100644 --- a/util/testutil.cc +++ b/leveldb-1.18/util/testutil.cc diff --git a/util/testutil.h b/leveldb-1.18/util/testutil.h index adad3fc..adad3fc 100644 --- a/util/testutil.h +++ b/leveldb-1.18/util/testutil.h diff --git a/snappy-1.1.0/AUTHORS b/snappy-1.1.0/AUTHORS new file mode 100644 index 0000000..4858b37 --- /dev/null +++ b/snappy-1.1.0/AUTHORS @@ -0,0 +1 @@ +opensource@google.com diff --git a/snappy-1.1.0/COPYING b/snappy-1.1.0/COPYING new file mode 100644 index 0000000..8d6bd9f --- /dev/null +++ b/snappy-1.1.0/COPYING @@ -0,0 +1,28 @@ +Copyright 2011, Google Inc. +All rights reserved. + +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 Google Inc. 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 +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. diff --git a/snappy-1.1.0/ChangeLog b/snappy-1.1.0/ChangeLog new file mode 100644 index 0000000..10aa968 --- /dev/null +++ b/snappy-1.1.0/ChangeLog @@ -0,0 +1,1618 @@ +------------------------------------------------------------------------ +r72 | snappy.mirrorbot@gmail.com | 2013-02-05 15:30:05 +0100 (Tue, 05 Feb 2013) | 9 lines + +Make ./snappy_unittest pass without "srcdir" being defined. + +Previously, snappy_unittests would read from an absolute path /testdata/..; +convert it to use a relative path instead. + +Patch from Marc-Antonie Ruel. + +R=maruel + +------------------------------------------------------------------------ +r71 | snappy.mirrorbot@gmail.com | 2013-01-18 13:16:36 +0100 (Fri, 18 Jan 2013) | 287 lines + +Increase the Zippy block size from 32 kB to 64 kB, winning ~3% density +while being effectively performance neutral. + +The longer story about density is that we win 3-6% density on the benchmarks +where this has any effect at all; many of the benchmarks (cp, c, lsp, man) +are smaller than 32 kB and thus will have no effect. Binary data also seems +to win little or nothing; of course, the already-compressed data wins nothing. +The protobuf benchmark wins as much as ~18% depending on architecture, +but I wouldn't be too sure that this is representative of protobuf data in +general. + +As of performance, we lose a tiny amount since we get more tags (e.g., a long +literal might be broken up into literal-copy-literal), but we win it back with +less clearing of the hash table, and more opportunities to skip incompressible +data (e.g. in the jpg benchmark). Decompression seems to get ever so slightly +slower, again due to more tags. The total net change is about as close to zero +as we can get, so the end effect seems to be simply more density and no +real performance change. + +The comment about not changing kBlockSize, scary as it is, is not really +relevant, since we're never going to have a block-level decompressor without +explicitly marked blocks. Replace it with something more appropriate. + +This affects the framing format, but it's okay to change it since it basically +has no users yet. + + +Density (note that cp, c, lsp and man are all smaller than 32 kB): + + Benchmark Description Base (%) New (%) Improvement + -------------------------------------------------------------- + ZFlat/0 html 22.57 22.31 +5.6% + ZFlat/1 urls 50.89 47.77 +6.5% + ZFlat/2 jpg 99.88 99.87 +0.0% + ZFlat/3 pdf 82.13 82.07 +0.1% + ZFlat/4 html4 23.55 22.51 +4.6% + ZFlat/5 cp 48.12 48.12 +0.0% + ZFlat/6 c 42.40 42.40 +0.0% + ZFlat/7 lsp 48.37 48.37 +0.0% + ZFlat/8 xls 41.34 41.23 +0.3% + ZFlat/9 txt1 59.81 57.87 +3.4% + ZFlat/10 txt2 64.07 61.93 +3.5% + ZFlat/11 txt3 57.11 54.92 +4.0% + ZFlat/12 txt4 68.35 66.22 +3.2% + ZFlat/13 bin 18.21 18.11 +0.6% + ZFlat/14 sum 51.88 48.96 +6.0% + ZFlat/15 man 59.36 59.36 +0.0% + ZFlat/16 pb 23.15 19.64 +17.9% + ZFlat/17 gaviota 38.27 37.72 +1.5% + Geometric mean 45.51 44.15 +3.1% + + +Microbenchmarks (64-bit, opt): + +Westmere 2.8 GHz: + + Benchmark Base (ns) New (ns) Improvement + ------------------------------------------------------------------------------------------------- + BM_UFlat/0 75342 75027 1.3GB/s html +0.4% + BM_UFlat/1 723767 744269 899.6MB/s urls -2.8% + BM_UFlat/2 10072 10072 11.7GB/s jpg +0.0% + BM_UFlat/3 30747 30388 2.9GB/s pdf +1.2% + BM_UFlat/4 307353 306063 1.2GB/s html4 +0.4% + BM_UFlat/5 28593 28743 816.3MB/s cp -0.5% + BM_UFlat/6 12958 12998 818.1MB/s c -0.3% + BM_UFlat/7 3700 3792 935.8MB/s lsp -2.4% + BM_UFlat/8 999685 999905 982.1MB/s xls -0.0% + BM_UFlat/9 232954 230079 630.4MB/s txt1 +1.2% + BM_UFlat/10 200785 201468 592.6MB/s txt2 -0.3% + BM_UFlat/11 617267 610968 666.1MB/s txt3 +1.0% + BM_UFlat/12 821595 822475 558.7MB/s txt4 -0.1% + BM_UFlat/13 377097 377632 1.3GB/s bin -0.1% + BM_UFlat/14 45476 45260 805.8MB/s sum +0.5% + BM_UFlat/15 4985 5003 805.7MB/s man -0.4% + BM_UFlat/16 80813 77494 1.4GB/s pb +4.3% + BM_UFlat/17 251792 241553 727.7MB/s gaviota +4.2% + BM_UValidate/0 40343 40354 2.4GB/s html -0.0% + BM_UValidate/1 426890 451574 1.4GB/s urls -5.5% + BM_UValidate/2 187 179 661.9GB/s jpg +4.5% + BM_UValidate/3 13783 13827 6.4GB/s pdf -0.3% + BM_UValidate/4 162393 163335 2.3GB/s html4 -0.6% + BM_UDataBuffer/0 93756 93302 1046.7MB/s html +0.5% + BM_UDataBuffer/1 886714 916292 730.7MB/s urls -3.2% + BM_UDataBuffer/2 15861 16401 7.2GB/s jpg -3.3% + BM_UDataBuffer/3 38934 39224 2.2GB/s pdf -0.7% + BM_UDataBuffer/4 381008 379428 1029.5MB/s html4 +0.4% + BM_UCord/0 92528 91098 1072.0MB/s html +1.6% + BM_UCord/1 858421 885287 756.3MB/s urls -3.0% + BM_UCord/2 13140 13464 8.8GB/s jpg -2.4% + BM_UCord/3 39012 37773 2.3GB/s pdf +3.3% + BM_UCord/4 376869 371267 1052.1MB/s html4 +1.5% + BM_UCordString/0 75810 75303 1.3GB/s html +0.7% + BM_UCordString/1 735290 753841 888.2MB/s urls -2.5% + BM_UCordString/2 11945 13113 9.0GB/s jpg -8.9% + BM_UCordString/3 33901 32562 2.7GB/s pdf +4.1% + BM_UCordString/4 310985 309390 1.2GB/s html4 +0.5% + BM_UCordValidate/0 40952 40450 2.4GB/s html +1.2% + BM_UCordValidate/1 433842 456531 1.4GB/s urls -5.0% + BM_UCordValidate/2 1179 1173 100.8GB/s jpg +0.5% + BM_UCordValidate/3 14481 14392 6.1GB/s pdf +0.6% + BM_UCordValidate/4 164364 164151 2.3GB/s html4 +0.1% + BM_ZFlat/0 160610 156601 623.6MB/s html (22.31 %) +2.6% + BM_ZFlat/1 1995238 1993582 335.9MB/s urls (47.77 %) +0.1% + BM_ZFlat/2 30133 24983 4.7GB/s jpg (99.87 %) +20.6% + BM_ZFlat/3 74453 73128 1.2GB/s pdf (82.07 %) +1.8% + BM_ZFlat/4 647674 633729 616.4MB/s html4 (22.51 %) +2.2% + BM_ZFlat/5 76259 76090 308.4MB/s cp (48.12 %) +0.2% + BM_ZFlat/6 31106 31084 342.1MB/s c (42.40 %) +0.1% + BM_ZFlat/7 10507 10443 339.8MB/s lsp (48.37 %) +0.6% + BM_ZFlat/8 1811047 1793325 547.6MB/s xls (41.23 %) +1.0% + BM_ZFlat/9 597903 581793 249.3MB/s txt1 (57.87 %) +2.8% + BM_ZFlat/10 525320 514522 232.0MB/s txt2 (61.93 %) +2.1% + BM_ZFlat/11 1596591 1551636 262.3MB/s txt3 (54.92 %) +2.9% + BM_ZFlat/12 2134523 2094033 219.5MB/s txt4 (66.22 %) +1.9% + BM_ZFlat/13 593024 587869 832.6MB/s bin (18.11 %) +0.9% + BM_ZFlat/14 114746 110666 329.5MB/s sum (48.96 %) +3.7% + BM_ZFlat/15 14376 14485 278.3MB/s man (59.36 %) -0.8% + BM_ZFlat/16 167908 150070 753.6MB/s pb (19.64 %) +11.9% + BM_ZFlat/17 460228 442253 397.5MB/s gaviota (37.72 %) +4.1% + BM_ZCord/0 164896 160241 609.4MB/s html +2.9% + BM_ZCord/1 2070239 2043492 327.7MB/s urls +1.3% + BM_ZCord/2 54402 47002 2.5GB/s jpg +15.7% + BM_ZCord/3 85871 83832 1073.1MB/s pdf +2.4% + BM_ZCord/4 664078 648825 602.0MB/s html4 +2.4% + BM_ZDataBuffer/0 174874 172549 566.0MB/s html +1.3% + BM_ZDataBuffer/1 2134410 2139173 313.0MB/s urls -0.2% + BM_ZDataBuffer/2 71911 69551 1.7GB/s jpg +3.4% + BM_ZDataBuffer/3 98236 99727 902.1MB/s pdf -1.5% + BM_ZDataBuffer/4 710776 699104 558.8MB/s html4 +1.7% + Sum of all benchmarks 27358908 27200688 +0.6% + + +Sandy Bridge 2.6 GHz: + + Benchmark Base (ns) New (ns) Improvement + ------------------------------------------------------------------------------------------------- + BM_UFlat/0 49356 49018 1.9GB/s html +0.7% + BM_UFlat/1 516764 531955 1.2GB/s urls -2.9% + BM_UFlat/2 6982 7304 16.2GB/s jpg -4.4% + BM_UFlat/3 15285 15598 5.6GB/s pdf -2.0% + BM_UFlat/4 206557 206669 1.8GB/s html4 -0.1% + BM_UFlat/5 13681 13567 1.7GB/s cp +0.8% + BM_UFlat/6 6571 6592 1.6GB/s c -0.3% + BM_UFlat/7 2008 1994 1.7GB/s lsp +0.7% + BM_UFlat/8 775700 773286 1.2GB/s xls +0.3% + BM_UFlat/9 165578 164480 881.8MB/s txt1 +0.7% + BM_UFlat/10 143707 144139 828.2MB/s txt2 -0.3% + BM_UFlat/11 443026 436281 932.8MB/s txt3 +1.5% + BM_UFlat/12 603129 595856 771.2MB/s txt4 +1.2% + BM_UFlat/13 271682 270450 1.8GB/s bin +0.5% + BM_UFlat/14 26200 25666 1.4GB/s sum +2.1% + BM_UFlat/15 2620 2608 1.5GB/s man +0.5% + BM_UFlat/16 48908 47756 2.3GB/s pb +2.4% + BM_UFlat/17 174638 170346 1031.9MB/s gaviota +2.5% + BM_UValidate/0 31922 31898 3.0GB/s html +0.1% + BM_UValidate/1 341265 363554 1.8GB/s urls -6.1% + BM_UValidate/2 160 151 782.8GB/s jpg +6.0% + BM_UValidate/3 10402 10380 8.5GB/s pdf +0.2% + BM_UValidate/4 129490 130587 2.9GB/s html4 -0.8% + BM_UDataBuffer/0 59383 58736 1.6GB/s html +1.1% + BM_UDataBuffer/1 619222 637786 1049.8MB/s urls -2.9% + BM_UDataBuffer/2 10775 11941 9.9GB/s jpg -9.8% + BM_UDataBuffer/3 18002 17930 4.9GB/s pdf +0.4% + BM_UDataBuffer/4 259182 259306 1.5GB/s html4 -0.0% + BM_UCord/0 59379 57814 1.6GB/s html +2.7% + BM_UCord/1 598456 615162 1088.4MB/s urls -2.7% + BM_UCord/2 8519 8628 13.7GB/s jpg -1.3% + BM_UCord/3 18123 17537 5.0GB/s pdf +3.3% + BM_UCord/4 252375 252331 1.5GB/s html4 +0.0% + BM_UCordString/0 49494 49790 1.9GB/s html -0.6% + BM_UCordString/1 524659 541803 1.2GB/s urls -3.2% + BM_UCordString/2 8206 8354 14.2GB/s jpg -1.8% + BM_UCordString/3 17235 16537 5.3GB/s pdf +4.2% + BM_UCordString/4 210188 211072 1.8GB/s html4 -0.4% + BM_UCordValidate/0 31956 31587 3.0GB/s html +1.2% + BM_UCordValidate/1 340828 362141 1.8GB/s urls -5.9% + BM_UCordValidate/2 783 744 158.9GB/s jpg +5.2% + BM_UCordValidate/3 10543 10462 8.4GB/s pdf +0.8% + BM_UCordValidate/4 130150 129789 2.9GB/s html4 +0.3% + BM_ZFlat/0 113873 111200 878.2MB/s html (22.31 %) +2.4% + BM_ZFlat/1 1473023 1489858 449.4MB/s urls (47.77 %) -1.1% + BM_ZFlat/2 23569 19486 6.1GB/s jpg (99.87 %) +21.0% + BM_ZFlat/3 49178 48046 1.8GB/s pdf (82.07 %) +2.4% + BM_ZFlat/4 475063 469394 832.2MB/s html4 (22.51 %) +1.2% + BM_ZFlat/5 46910 46816 501.2MB/s cp (48.12 %) +0.2% + BM_ZFlat/6 16883 16916 628.6MB/s c (42.40 %) -0.2% + BM_ZFlat/7 5381 5447 651.5MB/s lsp (48.37 %) -1.2% + BM_ZFlat/8 1466870 1473861 666.3MB/s xls (41.23 %) -0.5% + BM_ZFlat/9 468006 464101 312.5MB/s txt1 (57.87 %) +0.8% + BM_ZFlat/10 408157 408957 291.9MB/s txt2 (61.93 %) -0.2% + BM_ZFlat/11 1253348 1232910 330.1MB/s txt3 (54.92 %) +1.7% + BM_ZFlat/12 1702373 1702977 269.8MB/s txt4 (66.22 %) -0.0% + BM_ZFlat/13 439792 438557 1116.0MB/s bin (18.11 %) +0.3% + BM_ZFlat/14 80766 78851 462.5MB/s sum (48.96 %) +2.4% + BM_ZFlat/15 7420 7542 534.5MB/s man (59.36 %) -1.6% + BM_ZFlat/16 112043 100126 1.1GB/s pb (19.64 %) +11.9% + BM_ZFlat/17 368877 357703 491.4MB/s gaviota (37.72 %) +3.1% + BM_ZCord/0 116402 113564 859.9MB/s html +2.5% + BM_ZCord/1 1507156 1519911 440.5MB/s urls -0.8% + BM_ZCord/2 39860 33686 3.5GB/s jpg +18.3% + BM_ZCord/3 56211 54694 1.6GB/s pdf +2.8% + BM_ZCord/4 485594 479212 815.1MB/s html4 +1.3% + BM_ZDataBuffer/0 123185 121572 803.3MB/s html +1.3% + BM_ZDataBuffer/1 1569111 1589380 421.3MB/s urls -1.3% + BM_ZDataBuffer/2 53143 49556 2.4GB/s jpg +7.2% + BM_ZDataBuffer/3 65725 66826 1.3GB/s pdf -1.6% + BM_ZDataBuffer/4 517871 514750 758.9MB/s html4 +0.6% + Sum of all benchmarks 20258879 20315484 -0.3% + + +AMD Instanbul 2.4 GHz: + + Benchmark Base (ns) New (ns) Improvement + ------------------------------------------------------------------------------------------------- + BM_UFlat/0 97120 96585 1011.1MB/s html +0.6% + BM_UFlat/1 917473 948016 706.3MB/s urls -3.2% + BM_UFlat/2 21496 23938 4.9GB/s jpg -10.2% + BM_UFlat/3 44751 45639 1.9GB/s pdf -1.9% + BM_UFlat/4 391950 391413 998.0MB/s html4 +0.1% + BM_UFlat/5 37366 37201 630.7MB/s cp +0.4% + BM_UFlat/6 18350 18318 580.5MB/s c +0.2% + BM_UFlat/7 5672 5661 626.9MB/s lsp +0.2% + BM_UFlat/8 1533390 1529441 642.1MB/s xls +0.3% + BM_UFlat/9 335477 336553 431.0MB/s txt1 -0.3% + BM_UFlat/10 285140 292080 408.7MB/s txt2 -2.4% + BM_UFlat/11 888507 894758 454.9MB/s txt3 -0.7% + BM_UFlat/12 1187643 1210928 379.5MB/s txt4 -1.9% + BM_UFlat/13 493717 507447 964.5MB/s bin -2.7% + BM_UFlat/14 61740 60870 599.1MB/s sum +1.4% + BM_UFlat/15 7211 7187 560.9MB/s man +0.3% + BM_UFlat/16 97435 93100 1.2GB/s pb +4.7% + BM_UFlat/17 362662 356395 493.2MB/s gaviota +1.8% + BM_UValidate/0 47475 47118 2.0GB/s html +0.8% + BM_UValidate/1 501304 529741 1.2GB/s urls -5.4% + BM_UValidate/2 276 243 486.2GB/s jpg +13.6% + BM_UValidate/3 16361 16261 5.4GB/s pdf +0.6% + BM_UValidate/4 190741 190353 2.0GB/s html4 +0.2% + BM_UDataBuffer/0 111080 109771 889.6MB/s html +1.2% + BM_UDataBuffer/1 1051035 1085999 616.5MB/s urls -3.2% + BM_UDataBuffer/2 25801 25463 4.6GB/s jpg +1.3% + BM_UDataBuffer/3 50493 49946 1.8GB/s pdf +1.1% + BM_UDataBuffer/4 447258 444138 879.5MB/s html4 +0.7% + BM_UCord/0 109350 107909 905.0MB/s html +1.3% + BM_UCord/1 1023396 1054964 634.7MB/s urls -3.0% + BM_UCord/2 25292 24371 4.9GB/s jpg +3.8% + BM_UCord/3 48955 49736 1.8GB/s pdf -1.6% + BM_UCord/4 440452 437331 893.2MB/s html4 +0.7% + BM_UCordString/0 98511 98031 996.2MB/s html +0.5% + BM_UCordString/1 933230 963495 694.9MB/s urls -3.1% + BM_UCordString/2 23311 24076 4.9GB/s jpg -3.2% + BM_UCordString/3 45568 46196 1.9GB/s pdf -1.4% + BM_UCordString/4 397791 396934 984.1MB/s html4 +0.2% + BM_UCordValidate/0 47537 46921 2.0GB/s html +1.3% + BM_UCordValidate/1 505071 532716 1.2GB/s urls -5.2% + BM_UCordValidate/2 1663 1621 72.9GB/s jpg +2.6% + BM_UCordValidate/3 16890 16926 5.2GB/s pdf -0.2% + BM_UCordValidate/4 192365 191984 2.0GB/s html4 +0.2% + BM_ZFlat/0 184708 179103 545.3MB/s html (22.31 %) +3.1% + BM_ZFlat/1 2293864 2302950 290.7MB/s urls (47.77 %) -0.4% + BM_ZFlat/2 52852 47618 2.5GB/s jpg (99.87 %) +11.0% + BM_ZFlat/3 100766 96179 935.3MB/s pdf (82.07 %) +4.8% + BM_ZFlat/4 741220 727977 536.6MB/s html4 (22.51 %) +1.8% + BM_ZFlat/5 85402 85418 274.7MB/s cp (48.12 %) -0.0% + BM_ZFlat/6 36558 36494 291.4MB/s c (42.40 %) +0.2% + BM_ZFlat/7 12706 12507 283.7MB/s lsp (48.37 %) +1.6% + BM_ZFlat/8 2336823 2335688 420.5MB/s xls (41.23 %) +0.0% + BM_ZFlat/9 701804 681153 212.9MB/s txt1 (57.87 %) +3.0% + BM_ZFlat/10 606700 597194 199.9MB/s txt2 (61.93 %) +1.6% + BM_ZFlat/11 1852283 1803238 225.7MB/s txt3 (54.92 %) +2.7% + BM_ZFlat/12 2475527 2443354 188.1MB/s txt4 (66.22 %) +1.3% + BM_ZFlat/13 694497 696654 702.6MB/s bin (18.11 %) -0.3% + BM_ZFlat/14 136929 129855 280.8MB/s sum (48.96 %) +5.4% + BM_ZFlat/15 17172 17124 235.4MB/s man (59.36 %) +0.3% + BM_ZFlat/16 190364 171763 658.4MB/s pb (19.64 %) +10.8% + BM_ZFlat/17 567285 555190 316.6MB/s gaviota (37.72 %) +2.2% + BM_ZCord/0 193490 187031 522.1MB/s html +3.5% + BM_ZCord/1 2427537 2415315 277.2MB/s urls +0.5% + BM_ZCord/2 85378 81412 1.5GB/s jpg +4.9% + BM_ZCord/3 121898 119419 753.3MB/s pdf +2.1% + BM_ZCord/4 779564 762961 512.0MB/s html4 +2.2% + BM_ZDataBuffer/0 213820 207272 471.1MB/s html +3.2% + BM_ZDataBuffer/1 2589010 2586495 258.9MB/s urls +0.1% + BM_ZDataBuffer/2 121871 118885 1018.4MB/s jpg +2.5% + BM_ZDataBuffer/3 145382 145986 616.2MB/s pdf -0.4% + BM_ZDataBuffer/4 868117 852754 458.1MB/s html4 +1.8% + Sum of all benchmarks 33771833 33744763 +0.1% + +------------------------------------------------------------------------ +r70 | snappy.mirrorbot@gmail.com | 2013-01-06 20:21:26 +0100 (Sun, 06 Jan 2013) | 6 lines + +Adjust the Snappy open-source distribution for the changes in Google's +internal file API. + +R=sanjay + + +------------------------------------------------------------------------ +r69 | snappy.mirrorbot@gmail.com | 2013-01-04 12:54:20 +0100 (Fri, 04 Jan 2013) | 15 lines + +Change a few ORs to additions where they don't matter. This helps the compiler +use the LEA instruction more efficiently, since e.g. a + (b << 2) can be encoded +as one instruction. Even more importantly, it can constant-fold the +COPY_* enums together with the shifted negative constants, which also saves +some instructions. (We don't need it for LITERAL, since it happens to be 0.) + +I am unsure why the compiler couldn't do this itself, but the theory is that +it cannot prove that len-1 and len-4 cannot underflow/wrap, and thus can't +do the optimization safely. + +The gains are small but measurable; 0.5-1.0% over the BM_Z* benchmarks +(measured on Westmere, Sandy Bridge and Istanbul). + +R=sanjay + +------------------------------------------------------------------------ +r68 | snappy.mirrorbot@gmail.com | 2012-10-08 13:37:16 +0200 (Mon, 08 Oct 2012) | 5 lines + +Stop giving -Werror to automake, due to an incompatibility between current +versions of libtool and automake on non-GNU platforms (e.g. Mac OS X). + +R=sanjay + +------------------------------------------------------------------------ +r67 | snappy.mirrorbot@gmail.com | 2012-08-17 15:54:47 +0200 (Fri, 17 Aug 2012) | 5 lines + +Fix public issue 66: Document GetUncompressedLength better, in particular that +it leaves the source in a state that's not appropriate for RawUncompress. + +R=sanjay + +------------------------------------------------------------------------ +r66 | snappy.mirrorbot@gmail.com | 2012-07-31 13:44:44 +0200 (Tue, 31 Jul 2012) | 5 lines + +Fix public issue 64: Check for <sys/time.h> at configure time, +since MSVC seemingly does not have it. + +R=sanjay + +------------------------------------------------------------------------ +r65 | snappy.mirrorbot@gmail.com | 2012-07-04 11:34:48 +0200 (Wed, 04 Jul 2012) | 10 lines + +Handle the case where gettimeofday() goes backwards or returns the same value +twice; it could cause division by zero in the unit test framework. +(We already had one fix for this in place, but it was incomplete.) + +This could in theory happen on any system, since there are few guarantees +about gettimeofday(), but seems to only happen in practice on GNU/Hurd, where +gettimeofday() is cached and only updated ever so often. + +R=sanjay + +------------------------------------------------------------------------ +r64 | snappy.mirrorbot@gmail.com | 2012-07-04 11:28:33 +0200 (Wed, 04 Jul 2012) | 6 lines + +Mark ARMv4 as not supporting unaligned accesses (not just ARMv5 and ARMv6); +apparently Debian still targets these by default, giving us segfaults on +armel. + +R=sanjay + +------------------------------------------------------------------------ +r63 | snappy.mirrorbot@gmail.com | 2012-05-22 11:46:05 +0200 (Tue, 22 May 2012) | 5 lines + +Fix public bug #62: Remove an extraneous comma at the end of an enum list, +causing compile errors when embedded in Mozilla on OpenBSD. + +R=sanjay + +------------------------------------------------------------------------ +r62 | snappy.mirrorbot@gmail.com | 2012-05-22 11:32:50 +0200 (Tue, 22 May 2012) | 8 lines + +Snappy library no longer depends on iostream. + +Achieved by moving logging macro definitions to a test-only +header file, and by changing non-test code to use assert, +fprintf, and abort instead of LOG/CHECK macros. + +R=sesse + +------------------------------------------------------------------------ +r61 | snappy.mirrorbot@gmail.com | 2012-02-24 16:46:37 +0100 (Fri, 24 Feb 2012) | 4 lines + +Release Snappy 1.0.5. + +R=sanjay + +------------------------------------------------------------------------ +r60 | snappy.mirrorbot@gmail.com | 2012-02-23 18:00:36 +0100 (Thu, 23 Feb 2012) | 57 lines + +For 32-bit platforms, do not try to accelerate multiple neighboring +32-bit loads with a 64-bit load during compression (it's not a win). + +The main target for this optimization is ARM, but 32-bit x86 gets +a small gain, too, although there is noise in the microbenchmarks. +It's a no-op for 64-bit x86. It does not affect decompression. + +Microbenchmark results on a Cortex-A9 1GHz, using g++ 4.6.2 (from +Ubuntu/Linaro), -O2 -DNDEBUG -Wa,-march=armv7a -mtune=cortex-a9 +-mthumb-interwork, minimum 1000 iterations: + + Benchmark Time(ns) CPU(ns) Iterations + --------------------------------------------------- + BM_ZFlat/0 1158277 1160000 1000 84.2MB/s html (23.57 %) [ +4.3%] + BM_ZFlat/1 14861782 14860000 1000 45.1MB/s urls (50.89 %) [ +1.1%] + BM_ZFlat/2 393595 390000 1000 310.5MB/s jpg (99.88 %) [ +0.0%] + BM_ZFlat/3 650583 650000 1000 138.4MB/s pdf (82.13 %) [ +3.1%] + BM_ZFlat/4 4661480 4660000 1000 83.8MB/s html4 (23.55 %) [ +4.3%] + BM_ZFlat/5 491973 490000 1000 47.9MB/s cp (48.12 %) [ +2.0%] + BM_ZFlat/6 193575 192678 1038 55.2MB/s c (42.40 %) [ +9.0%] + BM_ZFlat/7 62343 62754 3187 56.5MB/s lsp (48.37 %) [ +2.6%] + BM_ZFlat/8 17708468 17710000 1000 55.5MB/s xls (41.34 %) [ -0.3%] + BM_ZFlat/9 3755345 3760000 1000 38.6MB/s txt1 (59.81 %) [ +8.2%] + BM_ZFlat/10 3324217 3320000 1000 36.0MB/s txt2 (64.07 %) [ +4.2%] + BM_ZFlat/11 10139932 10140000 1000 40.1MB/s txt3 (57.11 %) [ +6.4%] + BM_ZFlat/12 13532109 13530000 1000 34.0MB/s txt4 (68.35 %) [ +5.0%] + BM_ZFlat/13 4690847 4690000 1000 104.4MB/s bin (18.21 %) [ +4.1%] + BM_ZFlat/14 830682 830000 1000 43.9MB/s sum (51.88 %) [ +1.2%] + BM_ZFlat/15 84784 85011 2235 47.4MB/s man (59.36 %) [ +1.1%] + BM_ZFlat/16 1293254 1290000 1000 87.7MB/s pb (23.15 %) [ +2.3%] + BM_ZFlat/17 2775155 2780000 1000 63.2MB/s gaviota (38.27 %) [+12.2%] + +Core i7 in 32-bit mode (only one run and 100 iterations, though, so noisy): + + Benchmark Time(ns) CPU(ns) Iterations + --------------------------------------------------- + BM_ZFlat/0 227582 223464 3043 437.0MB/s html (23.57 %) [ +7.4%] + BM_ZFlat/1 2982430 2918455 233 229.4MB/s urls (50.89 %) [ +2.9%] + BM_ZFlat/2 46967 46658 15217 2.5GB/s jpg (99.88 %) [ +0.0%] + BM_ZFlat/3 115298 114864 5833 783.2MB/s pdf (82.13 %) [ +1.5%] + BM_ZFlat/4 913440 899743 778 434.2MB/s html4 (23.55 %) [ +0.3%] + BM_ZFlat/5 110302 108571 7000 216.1MB/s cp (48.12 %) [ +0.0%] + BM_ZFlat/6 44409 43372 15909 245.2MB/s c (42.40 %) [ +0.8%] + BM_ZFlat/7 15713 15643 46667 226.9MB/s lsp (48.37 %) [ +2.7%] + BM_ZFlat/8 2625539 2602230 269 377.4MB/s xls (41.34 %) [ +1.4%] + BM_ZFlat/9 808884 811429 875 178.8MB/s txt1 (59.81 %) [ -3.9%] + BM_ZFlat/10 709532 700000 1000 170.5MB/s txt2 (64.07 %) [ +0.0%] + BM_ZFlat/11 2177682 2162162 333 188.2MB/s txt3 (57.11 %) [ -1.4%] + BM_ZFlat/12 2849640 2840000 250 161.8MB/s txt4 (68.35 %) [ -1.4%] + BM_ZFlat/13 849760 835476 778 585.8MB/s bin (18.21 %) [ +1.2%] + BM_ZFlat/14 165940 164571 4375 221.6MB/s sum (51.88 %) [ +1.4%] + BM_ZFlat/15 20939 20571 35000 196.0MB/s man (59.36 %) [ +2.1%] + BM_ZFlat/16 239209 236544 2917 478.1MB/s pb (23.15 %) [ +4.2%] + BM_ZFlat/17 616206 610000 1000 288.2MB/s gaviota (38.27 %) [ -1.6%] + +R=sanjay + +------------------------------------------------------------------------ +r59 | snappy.mirrorbot@gmail.com | 2012-02-21 18:02:17 +0100 (Tue, 21 Feb 2012) | 107 lines + +Enable the use of unaligned loads and stores for ARM-based architectures +where they are available (ARMv7 and higher). This gives a significant +speed boost on ARM, both for compression and decompression. +It should not affect x86 at all. + +There are more changes possible to speed up ARM, but it might not be +that easy to do without hurting x86 or making the code uglier. +Also, we de not try to use NEON yet. + +Microbenchmark results on a Cortex-A9 1GHz, using g++ 4.6.2 (from Ubuntu/Linaro), +-O2 -DNDEBUG -Wa,-march=armv7a -mtune=cortex-a9 -mthumb-interwork: + +Benchmark Time(ns) CPU(ns) Iterations +--------------------------------------------------- +BM_UFlat/0 524806 529100 378 184.6MB/s html [+33.6%] +BM_UFlat/1 5139790 5200000 100 128.8MB/s urls [+28.8%] +BM_UFlat/2 86540 84166 1901 1.4GB/s jpg [ +0.6%] +BM_UFlat/3 215351 210176 904 428.0MB/s pdf [+29.8%] +BM_UFlat/4 2144490 2100000 100 186.0MB/s html4 [+33.3%] +BM_UFlat/5 194482 190000 1000 123.5MB/s cp [+36.2%] +BM_UFlat/6 91843 90175 2107 117.9MB/s c [+38.6%] +BM_UFlat/7 28535 28426 6684 124.8MB/s lsp [+34.7%] +BM_UFlat/8 9206600 9200000 100 106.7MB/s xls [+42.4%] +BM_UFlat/9 1865273 1886792 106 76.9MB/s txt1 [+32.5%] +BM_UFlat/10 1576809 1587301 126 75.2MB/s txt2 [+32.3%] +BM_UFlat/11 4968450 4900000 100 83.1MB/s txt3 [+32.7%] +BM_UFlat/12 6673970 6700000 100 68.6MB/s txt4 [+32.8%] +BM_UFlat/13 2391470 2400000 100 203.9MB/s bin [+29.2%] +BM_UFlat/14 334601 344827 522 105.8MB/s sum [+30.6%] +BM_UFlat/15 37404 38080 5252 105.9MB/s man [+33.8%] +BM_UFlat/16 535470 540540 370 209.2MB/s pb [+31.2%] +BM_UFlat/17 1875245 1886792 106 93.2MB/s gaviota [+37.8%] +BM_UValidate/0 178425 179533 1114 543.9MB/s html [ +2.7%] +BM_UValidate/1 2100450 2000000 100 334.8MB/s urls [ +5.0%] +BM_UValidate/2 1039 1044 172413 113.3GB/s jpg [ +3.4%] +BM_UValidate/3 59423 59470 3363 1.5GB/s pdf [ +7.8%] +BM_UValidate/4 760716 766283 261 509.8MB/s html4 [ +6.5%] +BM_ZFlat/0 1204632 1204819 166 81.1MB/s html (23.57 %) [+32.8%] +BM_ZFlat/1 15656190 15600000 100 42.9MB/s urls (50.89 %) [+27.6%] +BM_ZFlat/2 403336 410677 487 294.8MB/s jpg (99.88 %) [+16.5%] +BM_ZFlat/3 664073 671140 298 134.0MB/s pdf (82.13 %) [+28.4%] +BM_ZFlat/4 4961940 4900000 100 79.7MB/s html4 (23.55 %) [+30.6%] +BM_ZFlat/5 500664 501253 399 46.8MB/s cp (48.12 %) [+33.4%] +BM_ZFlat/6 217276 215982 926 49.2MB/s c (42.40 %) [+25.0%] +BM_ZFlat/7 64122 65487 3054 54.2MB/s lsp (48.37 %) [+36.1%] +BM_ZFlat/8 18045730 18000000 100 54.6MB/s xls (41.34 %) [+34.4%] +BM_ZFlat/9 4051530 4000000 100 36.3MB/s txt1 (59.81 %) [+25.0%] +BM_ZFlat/10 3451800 3500000 100 34.1MB/s txt2 (64.07 %) [+25.7%] +BM_ZFlat/11 11052340 11100000 100 36.7MB/s txt3 (57.11 %) [+24.3%] +BM_ZFlat/12 14538690 14600000 100 31.5MB/s txt4 (68.35 %) [+24.7%] +BM_ZFlat/13 5041850 5000000 100 97.9MB/s bin (18.21 %) [+32.0%] +BM_ZFlat/14 908840 909090 220 40.1MB/s sum (51.88 %) [+22.2%] +BM_ZFlat/15 86921 86206 1972 46.8MB/s man (59.36 %) [+42.2%] +BM_ZFlat/16 1312315 1315789 152 86.0MB/s pb (23.15 %) [+34.5%] +BM_ZFlat/17 3173120 3200000 100 54.9MB/s gaviota (38.27%) [+28.1%] + + +The move from 64-bit to 32-bit operations for the copies also affected 32-bit x86; +positive on the decompression side, and slightly negative on the compression side +(unless that is noise; I only ran once): + +Benchmark Time(ns) CPU(ns) Iterations +----------------------------------------------------- +BM_UFlat/0 86279 86140 7778 1.1GB/s html [ +7.5%] +BM_UFlat/1 839265 822622 778 813.9MB/s urls [ +9.4%] +BM_UFlat/2 9180 9143 87500 12.9GB/s jpg [ +1.2%] +BM_UFlat/3 35080 35000 20000 2.5GB/s pdf [+10.1%] +BM_UFlat/4 350318 345000 2000 1.1GB/s html4 [ +7.0%] +BM_UFlat/5 33808 33472 21212 701.0MB/s cp [ +9.0%] +BM_UFlat/6 15201 15214 46667 698.9MB/s c [+14.9%] +BM_UFlat/7 4652 4651 159091 762.9MB/s lsp [ +7.5%] +BM_UFlat/8 1285551 1282528 538 765.7MB/s xls [+10.7%] +BM_UFlat/9 282510 281690 2414 514.9MB/s txt1 [+13.6%] +BM_UFlat/10 243494 239286 2800 498.9MB/s txt2 [+14.4%] +BM_UFlat/11 743625 740000 1000 550.0MB/s txt3 [+14.3%] +BM_UFlat/12 999441 989717 778 464.3MB/s txt4 [+16.1%] +BM_UFlat/13 412402 410076 1707 1.2GB/s bin [ +7.3%] +BM_UFlat/14 54876 54000 10000 675.3MB/s sum [+13.0%] +BM_UFlat/15 6146 6100 100000 660.8MB/s man [+14.8%] +BM_UFlat/16 90496 90286 8750 1.2GB/s pb [ +4.0%] +BM_UFlat/17 292650 292000 2500 602.0MB/s gaviota [+18.1%] +BM_UValidate/0 49620 49699 14286 1.9GB/s html [ +0.0%] +BM_UValidate/1 501371 500000 1000 1.3GB/s urls [ +0.0%] +BM_UValidate/2 232 227 3043478 521.5GB/s jpg [ +1.3%] +BM_UValidate/3 17250 17143 43750 5.1GB/s pdf [ -1.3%] +BM_UValidate/4 198643 200000 3500 1.9GB/s html4 [ -0.9%] +BM_ZFlat/0 227128 229415 3182 425.7MB/s html (23.57 %) [ -1.4%] +BM_ZFlat/1 2970089 2960000 250 226.2MB/s urls (50.89 %) [ -1.9%] +BM_ZFlat/2 45683 44999 15556 2.6GB/s jpg (99.88 %) [ +2.2%] +BM_ZFlat/3 114661 113136 6364 795.1MB/s pdf (82.13 %) [ -1.5%] +BM_ZFlat/4 919702 914286 875 427.2MB/s html4 (23.55%) [ -1.3%] +BM_ZFlat/5 108189 108422 6364 216.4MB/s cp (48.12 %) [ -1.2%] +BM_ZFlat/6 44525 44000 15909 241.7MB/s c (42.40 %) [ -2.9%] +BM_ZFlat/7 15973 15857 46667 223.8MB/s lsp (48.37 %) [ +0.0%] +BM_ZFlat/8 2677888 2639405 269 372.1MB/s xls (41.34 %) [ -1.4%] +BM_ZFlat/9 800715 780000 1000 186.0MB/s txt1 (59.81 %) [ -0.4%] +BM_ZFlat/10 700089 700000 1000 170.5MB/s txt2 (64.07 %) [ -2.9%] +BM_ZFlat/11 2159356 2138365 318 190.3MB/s txt3 (57.11 %) [ -0.3%] +BM_ZFlat/12 2796143 2779923 259 165.3MB/s txt4 (68.35 %) [ -1.4%] +BM_ZFlat/13 856458 835476 778 585.8MB/s bin (18.21 %) [ -0.1%] +BM_ZFlat/14 166908 166857 4375 218.6MB/s sum (51.88 %) [ -1.4%] +BM_ZFlat/15 21181 20857 35000 193.3MB/s man (59.36 %) [ -0.8%] +BM_ZFlat/16 244009 239973 2917 471.3MB/s pb (23.15 %) [ -1.4%] +BM_ZFlat/17 596362 590000 1000 297.9MB/s gaviota (38.27%) [ +0.0%] + +R=sanjay + +------------------------------------------------------------------------ +r58 | snappy.mirrorbot@gmail.com | 2012-02-11 23:11:22 +0100 (Sat, 11 Feb 2012) | 9 lines + +Lower the size allocated in the "corrupted input" unit test from 256 MB +to 2 MB. This fixes issues with running the unit test on platforms with +little RAM (e.g. some ARM boards). + +Also, reactivate the 2 MB test for 64-bit platforms; there's no good +reason why it shouldn't be. + +R=sanjay + +------------------------------------------------------------------------ +r57 | snappy.mirrorbot@gmail.com | 2012-01-08 18:55:48 +0100 (Sun, 08 Jan 2012) | 2 lines + +Minor refactoring to accomodate changes in Google's internal code tree. + +------------------------------------------------------------------------ +r56 | snappy.mirrorbot@gmail.com | 2012-01-04 14:10:46 +0100 (Wed, 04 Jan 2012) | 19 lines + +Fix public issue r57: Fix most warnings with -Wall, mostly signed/unsigned +warnings. There are still some in the unit test, but the main .cc file should +be clean. We haven't enabled -Wall for the default build, since the unit test +is still not clean. + +This also fixes a real bug in the open-source implementation of +ReadFileToStringOrDie(); it would not detect errors correctly. + +I had to go through some pains to avoid performance loss as the types +were changed; I think there might still be some with 32-bit if and only if LFS +is enabled (ie., size_t is 64-bit), but for regular 32-bit and 64-bit I can't +see any losses, and I've diffed the generated GCC assembler between the old and +new code without seeing any significant choices. If anything, it's ever so +slightly faster. + +This may or may not enable compression of very large blocks (>2^32 bytes) +when size_t is 64-bit, but I haven't checked, and it is still not a supported +case. + +------------------------------------------------------------------------ +r55 | snappy.mirrorbot@gmail.com | 2012-01-04 11:46:39 +0100 (Wed, 04 Jan 2012) | 6 lines + +Add a framing format description. We do not have any implementation of this at +the current point, but there seems to be enough of a general interest in the +topic (cf. public bug #34). + +R=csilvers,sanjay + +------------------------------------------------------------------------ +r54 | snappy.mirrorbot@gmail.com | 2011-12-05 22:27:26 +0100 (Mon, 05 Dec 2011) | 81 lines + +Speed up decompression by moving the refill check to the end of the loop. + +This seems to work because in most of the branches, the compiler can evaluate +“ip_limit_ - ip” in a more efficient way than reloading ip_limit_ from memory +(either by already having the entire expression in a register, or reconstructing +it from “avail”, or something else). Memory loads, even from L1, are seemingly +costly in the big picture at the current decompression speeds. + +Microbenchmarks (64-bit, opt mode): + +Westmere (Intel Core i7): + + Benchmark Time(ns) CPU(ns) Iterations + -------------------------------------------- + BM_UFlat/0 74492 74491 187894 1.3GB/s html [ +5.9%] + BM_UFlat/1 712268 712263 19644 940.0MB/s urls [ +3.8%] + BM_UFlat/2 10591 10590 1000000 11.2GB/s jpg [ -6.8%] + BM_UFlat/3 29643 29643 469915 3.0GB/s pdf [ +7.9%] + BM_UFlat/4 304669 304667 45930 1.3GB/s html4 [ +4.8%] + BM_UFlat/5 28508 28507 490077 823.1MB/s cp [ +4.0%] + BM_UFlat/6 12415 12415 1000000 856.5MB/s c [ +8.6%] + BM_UFlat/7 3415 3415 4084723 1039.0MB/s lsp [+18.0%] + BM_UFlat/8 979569 979563 14261 1002.5MB/s xls [ +5.8%] + BM_UFlat/9 230150 230148 60934 630.2MB/s txt1 [ +5.2%] + BM_UFlat/10 197167 197166 71135 605.5MB/s txt2 [ +4.7%] + BM_UFlat/11 607394 607390 23041 670.1MB/s txt3 [ +5.6%] + BM_UFlat/12 808502 808496 17316 568.4MB/s txt4 [ +5.0%] + BM_UFlat/13 372791 372788 37564 1.3GB/s bin [ +3.3%] + BM_UFlat/14 44541 44541 313969 818.8MB/s sum [ +5.7%] + BM_UFlat/15 4833 4833 2898697 834.1MB/s man [ +4.8%] + BM_UFlat/16 79855 79855 175356 1.4GB/s pb [ +4.8%] + BM_UFlat/17 245845 245843 56838 715.0MB/s gaviota [ +5.8%] + +Clovertown (Intel Core 2): + + Benchmark Time(ns) CPU(ns) Iterations + -------------------------------------------- + BM_UFlat/0 107911 107890 100000 905.1MB/s html [ +2.2%] + BM_UFlat/1 1011237 1011041 10000 662.3MB/s urls [ +2.5%] + BM_UFlat/2 26775 26770 523089 4.4GB/s jpg [ +0.0%] + BM_UFlat/3 48103 48095 290618 1.8GB/s pdf [ +3.4%] + BM_UFlat/4 437724 437644 31937 892.6MB/s html4 [ +2.1%] + BM_UFlat/5 39607 39600 358284 592.5MB/s cp [ +2.4%] + BM_UFlat/6 18227 18224 768191 583.5MB/s c [ +2.7%] + BM_UFlat/7 5171 5170 2709437 686.4MB/s lsp [ +3.9%] + BM_UFlat/8 1560291 1559989 8970 629.5MB/s xls [ +3.6%] + BM_UFlat/9 335401 335343 41731 432.5MB/s txt1 [ +3.0%] + BM_UFlat/10 287014 286963 48758 416.0MB/s txt2 [ +2.8%] + BM_UFlat/11 888522 888356 15752 458.1MB/s txt3 [ +2.9%] + BM_UFlat/12 1186600 1186378 10000 387.3MB/s txt4 [ +3.1%] + BM_UFlat/13 572295 572188 24468 855.4MB/s bin [ +2.1%] + BM_UFlat/14 64060 64049 218401 569.4MB/s sum [ +4.1%] + BM_UFlat/15 7264 7263 1916168 555.0MB/s man [ +1.4%] + BM_UFlat/16 108853 108836 100000 1039.1MB/s pb [ +1.7%] + BM_UFlat/17 364289 364223 38419 482.6MB/s gaviota [ +4.9%] + +Barcelona (AMD Opteron): + + Benchmark Time(ns) CPU(ns) Iterations + -------------------------------------------- + BM_UFlat/0 103900 103871 100000 940.2MB/s html [ +8.3%] + BM_UFlat/1 1000435 1000107 10000 669.5MB/s urls [ +6.6%] + BM_UFlat/2 24659 24652 567362 4.8GB/s jpg [ +0.1%] + BM_UFlat/3 48206 48193 291121 1.8GB/s pdf [ +5.0%] + BM_UFlat/4 421980 421850 33174 926.0MB/s html4 [ +7.3%] + BM_UFlat/5 40368 40357 346994 581.4MB/s cp [ +8.7%] + BM_UFlat/6 19836 19830 708695 536.2MB/s c [ +8.0%] + BM_UFlat/7 6100 6098 2292774 581.9MB/s lsp [ +9.0%] + BM_UFlat/8 1693093 1692514 8261 580.2MB/s xls [ +8.0%] + BM_UFlat/9 365991 365886 38225 396.4MB/s txt1 [ +7.1%] + BM_UFlat/10 311330 311238 44950 383.6MB/s txt2 [ +7.6%] + BM_UFlat/11 975037 974737 14376 417.5MB/s txt3 [ +6.9%] + BM_UFlat/12 1303558 1303175 10000 352.6MB/s txt4 [ +7.3%] + BM_UFlat/13 517448 517290 27144 946.2MB/s bin [ +5.5%] + BM_UFlat/14 66537 66518 210352 548.3MB/s sum [ +7.5%] + BM_UFlat/15 7976 7974 1760383 505.6MB/s man [ +5.6%] + BM_UFlat/16 103121 103092 100000 1097.0MB/s pb [ +8.7%] + BM_UFlat/17 391431 391314 35733 449.2MB/s gaviota [ +6.5%] + +R=sanjay + +------------------------------------------------------------------------ +r53 | snappy.mirrorbot@gmail.com | 2011-11-23 12:14:17 +0100 (Wed, 23 Nov 2011) | 88 lines + +Speed up decompression by making the fast path for literals faster. + +We do the fast-path step as soon as possible; in fact, as soon as we know the +literal length. Since we usually hit the fast path, we can then skip the checks +for long literals and available input space (beyond what the fast path check +already does). + +Note that this changes the decompression Writer API; however, it does not +change the ABI, since writers are always templatized and as such never +cross compilation units. The new API is slightly more general, in that it +doesn't hard-code the value 16. Note that we also take care to check +for len <= 16 first, since the other two checks almost always succeed +(so we don't want to waste time checking for them until we have to). + +The improvements are most marked on Nehalem, but are generally positive +on other platforms as well. All microbenchmarks are 64-bit, opt. + +Clovertown (Core 2): + + Benchmark Time(ns) CPU(ns) Iterations + -------------------------------------------- + BM_UFlat/0 110226 110224 100000 886.0MB/s html [ +1.5%] + BM_UFlat/1 1036523 1036508 10000 646.0MB/s urls [ -0.8%] + BM_UFlat/2 26775 26775 522570 4.4GB/s jpg [ +0.0%] + BM_UFlat/3 49738 49737 280974 1.8GB/s pdf [ +0.3%] + BM_UFlat/4 446790 446792 31334 874.3MB/s html4 [ +0.8%] + BM_UFlat/5 40561 40562 350424 578.5MB/s cp [ +1.3%] + BM_UFlat/6 18722 18722 746903 568.0MB/s c [ +1.4%] + BM_UFlat/7 5373 5373 2608632 660.5MB/s lsp [ +8.3%] + BM_UFlat/8 1615716 1615718 8670 607.8MB/s xls [ +2.0%] + BM_UFlat/9 345278 345281 40481 420.1MB/s txt1 [ +1.4%] + BM_UFlat/10 294855 294855 47452 404.9MB/s txt2 [ +1.6%] + BM_UFlat/11 914263 914263 15316 445.2MB/s txt3 [ +1.1%] + BM_UFlat/12 1222694 1222691 10000 375.8MB/s txt4 [ +1.4%] + BM_UFlat/13 584495 584489 23954 837.4MB/s bin [ -0.6%] + BM_UFlat/14 66662 66662 210123 547.1MB/s sum [ +1.2%] + BM_UFlat/15 7368 7368 1881856 547.1MB/s man [ +4.0%] + BM_UFlat/16 110727 110726 100000 1021.4MB/s pb [ +2.3%] + BM_UFlat/17 382138 382141 36616 460.0MB/s gaviota [ -0.7%] + +Westmere (Core i7): + + Benchmark Time(ns) CPU(ns) Iterations + -------------------------------------------- + BM_UFlat/0 78861 78853 177703 1.2GB/s html [ +2.1%] + BM_UFlat/1 739560 739491 18912 905.4MB/s urls [ +3.4%] + BM_UFlat/2 9867 9866 1419014 12.0GB/s jpg [ +3.4%] + BM_UFlat/3 31989 31986 438385 2.7GB/s pdf [ +0.2%] + BM_UFlat/4 319406 319380 43771 1.2GB/s html4 [ +1.9%] + BM_UFlat/5 29639 29636 472862 791.7MB/s cp [ +5.2%] + BM_UFlat/6 13478 13477 1000000 789.0MB/s c [ +2.3%] + BM_UFlat/7 4030 4029 3475364 880.7MB/s lsp [ +8.7%] + BM_UFlat/8 1036585 1036492 10000 947.5MB/s xls [ +6.9%] + BM_UFlat/9 242127 242105 57838 599.1MB/s txt1 [ +3.0%] + BM_UFlat/10 206499 206480 67595 578.2MB/s txt2 [ +3.4%] + BM_UFlat/11 641635 641570 21811 634.4MB/s txt3 [ +2.4%] + BM_UFlat/12 848847 848769 16443 541.4MB/s txt4 [ +3.1%] + BM_UFlat/13 384968 384938 36366 1.2GB/s bin [ +0.3%] + BM_UFlat/14 47106 47101 297770 774.3MB/s sum [ +4.4%] + BM_UFlat/15 5063 5063 2772202 796.2MB/s man [ +7.7%] + BM_UFlat/16 83663 83656 167697 1.3GB/s pb [ +1.8%] + BM_UFlat/17 260224 260198 53823 675.6MB/s gaviota [ -0.5%] + +Barcelona (Opteron): + + Benchmark Time(ns) CPU(ns) Iterations + -------------------------------------------- + BM_UFlat/0 112490 112457 100000 868.4MB/s html [ -0.4%] + BM_UFlat/1 1066719 1066339 10000 627.9MB/s urls [ +1.0%] + BM_UFlat/2 24679 24672 563802 4.8GB/s jpg [ +0.7%] + BM_UFlat/3 50603 50589 277285 1.7GB/s pdf [ +2.6%] + BM_UFlat/4 452982 452849 30900 862.6MB/s html4 [ -0.2%] + BM_UFlat/5 43860 43848 319554 535.1MB/s cp [ +1.2%] + BM_UFlat/6 21419 21413 653573 496.6MB/s c [ +1.0%] + BM_UFlat/7 6646 6645 2105405 534.1MB/s lsp [ +0.3%] + BM_UFlat/8 1828487 1827886 7658 537.3MB/s xls [ +2.6%] + BM_UFlat/9 391824 391714 35708 370.3MB/s txt1 [ +2.2%] + BM_UFlat/10 334913 334816 41885 356.6MB/s txt2 [ +1.7%] + BM_UFlat/11 1042062 1041674 10000 390.7MB/s txt3 [ +1.1%] + BM_UFlat/12 1398902 1398456 10000 328.6MB/s txt4 [ +1.7%] + BM_UFlat/13 545706 545530 25669 897.2MB/s bin [ -0.4%] + BM_UFlat/14 71512 71505 196035 510.0MB/s sum [ +1.4%] + BM_UFlat/15 8422 8421 1665036 478.7MB/s man [ +2.6%] + BM_UFlat/16 112053 112048 100000 1009.3MB/s pb [ -0.4%] + BM_UFlat/17 416723 416713 33612 421.8MB/s gaviota [ -2.0%] + +R=sanjay + +------------------------------------------------------------------------ +r52 | snappy.mirrorbot@gmail.com | 2011-11-08 15:46:39 +0100 (Tue, 08 Nov 2011) | 5 lines + +Fix public issue #53: Update the README to the API we actually open-sourced +with. + +R=sanjay + +------------------------------------------------------------------------ +r51 | snappy.mirrorbot@gmail.com | 2011-10-05 14:27:12 +0200 (Wed, 05 Oct 2011) | 5 lines + +In the format description, use a clearer example to emphasize that varints are +stored in little-endian. Patch from Christian von Roques. + +R=csilvers + +------------------------------------------------------------------------ +r50 | snappy.mirrorbot@gmail.com | 2011-09-15 21:34:06 +0200 (Thu, 15 Sep 2011) | 4 lines + +Release Snappy 1.0.4. + +R=sanjay + +------------------------------------------------------------------------ +r49 | snappy.mirrorbot@gmail.com | 2011-09-15 11:50:05 +0200 (Thu, 15 Sep 2011) | 5 lines + +Fix public issue #50: Include generic byteswap macros. +Also include Solaris 10 and FreeBSD versions. + +R=csilvers + +------------------------------------------------------------------------ +r48 | snappy.mirrorbot@gmail.com | 2011-08-10 20:57:27 +0200 (Wed, 10 Aug 2011) | 5 lines + +Partially fix public issue 50: Remove an extra comma from the end of some +enum declarations, as it seems the Sun compiler does not like it. + +Based on patch by Travis Vitek. + +------------------------------------------------------------------------ +r47 | snappy.mirrorbot@gmail.com | 2011-08-10 20:44:16 +0200 (Wed, 10 Aug 2011) | 4 lines + +Use the right #ifdef test for sys/mman.h. + +Based on patch by Travis Vitek. + +------------------------------------------------------------------------ +r46 | snappy.mirrorbot@gmail.com | 2011-08-10 03:22:09 +0200 (Wed, 10 Aug 2011) | 6 lines + +Fix public issue #47: Small comment cleanups in the unit test. + +Originally based on a patch by Patrick Pelletier. + +R=sanjay + +------------------------------------------------------------------------ +r45 | snappy.mirrorbot@gmail.com | 2011-08-10 03:14:43 +0200 (Wed, 10 Aug 2011) | 8 lines + +Fix public issue #46: Format description said "3-byte offset" +instead of "4-byte offset" for the longest copies. + +Also fix an inconsistency in the heading for section 2.2.3. +Both patches by Patrick Pelletier. + +R=csilvers + +------------------------------------------------------------------------ +r44 | snappy.mirrorbot@gmail.com | 2011-06-28 13:40:25 +0200 (Tue, 28 Jun 2011) | 8 lines + +Fix public issue #44: Make the definition and declaration of CompressFragment +identical, even regarding cv-qualifiers. + +This is required to work around a bug in the Solaris Studio C++ compiler +(it does not properly disregard cv-qualifiers when doing name mangling). + +R=sanjay + +------------------------------------------------------------------------ +r43 | snappy.mirrorbot@gmail.com | 2011-06-04 12:19:05 +0200 (Sat, 04 Jun 2011) | 7 lines + +Correct an inaccuracy in the Snappy format description. +(I stumbled into this when changing the way we decompress literals.) + +R=csilvers + +Revision created by MOE tool push_codebase. + +------------------------------------------------------------------------ +r42 | snappy.mirrorbot@gmail.com | 2011-06-03 22:53:06 +0200 (Fri, 03 Jun 2011) | 50 lines + +Speed up decompression by removing a fast-path attempt. + +Whenever we try to enter a copy fast-path, there is a certain cost in checking +that all the preconditions are in place, but it's normally offset by the fact +that we can usually take the cheaper path. However, in a certain path we've +already established that "avail < literal_length", which usually means that +either the available space is small, or the literal is big. Both will disqualify +us from taking the fast path, and thus we take the hit from the precondition +checking without gaining much from having a fast path. Thus, simply don't try +the fast path in this situation -- we're already on a slow path anyway +(one where we need to refill more data from the reader). + +I'm a bit surprised at how much this gained; it could be that this path is +more common than I thought, or that the simpler structure somehow makes the +compiler happier. I haven't looked at the assembler, but it's a win across +the board on both Core 2, Core i7 and Opteron, at least for the cases we +typically care about. The gains seem to be the largest on Core i7, though. +Results from my Core i7 workstation: + + + Benchmark Time(ns) CPU(ns) Iterations + --------------------------------------------------- + BM_UFlat/0 73337 73091 190996 1.3GB/s html [ +1.7%] + BM_UFlat/1 696379 693501 20173 965.5MB/s urls [ +2.7%] + BM_UFlat/2 9765 9734 1472135 12.1GB/s jpg [ +0.7%] + BM_UFlat/3 29720 29621 472973 3.0GB/s pdf [ +1.8%] + BM_UFlat/4 294636 293834 47782 1.3GB/s html4 [ +2.3%] + BM_UFlat/5 28399 28320 494700 828.5MB/s cp [ +3.5%] + BM_UFlat/6 12795 12760 1000000 833.3MB/s c [ +1.2%] + BM_UFlat/7 3984 3973 3526448 893.2MB/s lsp [ +5.7%] + BM_UFlat/8 991996 989322 14141 992.6MB/s xls [ +3.3%] + BM_UFlat/9 228620 227835 61404 636.6MB/s txt1 [ +4.0%] + BM_UFlat/10 197114 196494 72165 607.5MB/s txt2 [ +3.5%] + BM_UFlat/11 605240 603437 23217 674.4MB/s txt3 [ +3.7%] + BM_UFlat/12 804157 802016 17456 573.0MB/s txt4 [ +3.9%] + BM_UFlat/13 347860 346998 40346 1.4GB/s bin [ +1.2%] + BM_UFlat/14 44684 44559 315315 818.4MB/s sum [ +2.3%] + BM_UFlat/15 5120 5106 2739726 789.4MB/s man [ +3.3%] + BM_UFlat/16 76591 76355 183486 1.4GB/s pb [ +2.8%] + BM_UFlat/17 238564 237828 58824 739.1MB/s gaviota [ +1.6%] + BM_UValidate/0 42194 42060 333333 2.3GB/s html [ -0.1%] + BM_UValidate/1 433182 432005 32407 1.5GB/s urls [ -0.1%] + BM_UValidate/2 197 196 71428571 603.3GB/s jpg [ +0.5%] + BM_UValidate/3 14494 14462 972222 6.1GB/s pdf [ +0.5%] + BM_UValidate/4 168444 167836 83832 2.3GB/s html4 [ +0.1%] + +R=jeff + +Revision created by MOE tool push_codebase. + +------------------------------------------------------------------------ +r41 | snappy.mirrorbot@gmail.com | 2011-06-03 22:47:14 +0200 (Fri, 03 Jun 2011) | 43 lines + +Speed up decompression by not needing a lookup table for literal items. + +Looking up into and decoding the values from char_table has long shown up as a +hotspot in the decompressor. While it turns out that it's hard to make a more +efficient decoder for the copy ops, the literals are simple enough that we can +decode them without needing a table lookup. (This means that 1/4 of the table +is now unused, although that in itself doesn't buy us anything.) + +The gains are small, but definitely present; some tests win as much as 10%, +but 1-4% is more typical. These results are from Core i7, in 64-bit mode; +Core 2 and Opteron show similar results. (I've run with more iterations +than unusual to make sure the smaller gains don't drown entirely in noise.) + + Benchmark Time(ns) CPU(ns) Iterations + --------------------------------------------------- + BM_UFlat/0 74665 74428 182055 1.3GB/s html [ +3.1%] + BM_UFlat/1 714106 711997 19663 940.4MB/s urls [ +4.4%] + BM_UFlat/2 9820 9789 1427115 12.1GB/s jpg [ -1.2%] + BM_UFlat/3 30461 30380 465116 2.9GB/s pdf [ +0.8%] + BM_UFlat/4 301445 300568 46512 1.3GB/s html4 [ +2.2%] + BM_UFlat/5 29338 29263 479452 801.8MB/s cp [ +1.6%] + BM_UFlat/6 13004 12970 1000000 819.9MB/s c [ +2.1%] + BM_UFlat/7 4180 4168 3349282 851.4MB/s lsp [ +1.3%] + BM_UFlat/8 1026149 1024000 10000 959.0MB/s xls [+10.7%] + BM_UFlat/9 237441 236830 59072 612.4MB/s txt1 [ +0.3%] + BM_UFlat/10 203966 203298 69307 587.2MB/s txt2 [ +0.8%] + BM_UFlat/11 627230 625000 22400 651.2MB/s txt3 [ +0.7%] + BM_UFlat/12 836188 833979 16787 551.0MB/s txt4 [ +1.3%] + BM_UFlat/13 351904 350750 39886 1.4GB/s bin [ +3.8%] + BM_UFlat/14 45685 45562 308370 800.4MB/s sum [ +5.9%] + BM_UFlat/15 5286 5270 2656546 764.9MB/s man [ +1.5%] + BM_UFlat/16 78774 78544 178117 1.4GB/s pb [ +4.3%] + BM_UFlat/17 242270 241345 58091 728.3MB/s gaviota [ +1.2%] + BM_UValidate/0 42149 42000 333333 2.3GB/s html [ -3.0%] + BM_UValidate/1 432741 431303 32483 1.5GB/s urls [ +7.8%] + BM_UValidate/2 198 197 71428571 600.7GB/s jpg [+16.8%] + BM_UValidate/3 14560 14521 965517 6.1GB/s pdf [ -4.1%] + BM_UValidate/4 169065 168671 83832 2.3GB/s html4 [ -2.9%] + +R=jeff + +Revision created by MOE tool push_codebase. + +------------------------------------------------------------------------ +r40 | snappy.mirrorbot@gmail.com | 2011-06-03 00:57:41 +0200 (Fri, 03 Jun 2011) | 2 lines + +Release Snappy 1.0.3. + +------------------------------------------------------------------------ +r39 | snappy.mirrorbot@gmail.com | 2011-06-02 20:06:54 +0200 (Thu, 02 Jun 2011) | 11 lines + +Remove an unneeded goto in the decompressor; it turns out that the +state of ip_ after decompression (or attempted decompresion) is +completely irrelevant, so we don't need the trailer. + +Performance is, as expected, mostly flat -- there's a curious ~3-5% +loss in the "lsp" test, but that test case is so short it is hard to say +anything definitive about why (most likely, it's some sort of +unrelated effect). + +R=jeff + +------------------------------------------------------------------------ +r38 | snappy.mirrorbot@gmail.com | 2011-06-02 19:59:40 +0200 (Thu, 02 Jun 2011) | 52 lines + +Speed up decompression by caching ip_. + +It is seemingly hard for the compiler to understand that ip_, the current input +pointer into the compressed data stream, can not alias on anything else, and +thus using it directly will incur memory traffic as it cannot be kept in a +register. The code already knew about this and cached it into a local +variable, but since Step() only decoded one tag, it had to move ip_ back into +place between every tag. This seems to have cost us a significant amount of +performance, so changing Step() into a function that decodes as much as it can +before it saves ip_ back and returns. (Note that Step() was already inlined, +so it is not the manual inlining that buys the performance here.) + +The wins are about 3-6% for Core 2, 6-13% on Core i7 and 5-12% on Opteron +(for plain array-to-array decompression, in 64-bit opt mode). + +There is a tiny difference in the behavior here; if an invalid literal is +encountered (ie., the writer refuses the Append() operation), ip_ will now +point to the byte past the tag byte, instead of where the literal was +originally thought to end. However, we don't use ip_ for anything after +DecompressAllTags() has returned, so this should not change external behavior +in any way. + +Microbenchmark results for Core i7, 64-bit (Opteron results are similar): + +Benchmark Time(ns) CPU(ns) Iterations +--------------------------------------------------- +BM_UFlat/0 79134 79110 8835 1.2GB/s html [ +6.2%] +BM_UFlat/1 786126 786096 891 851.8MB/s urls [+10.0%] +BM_UFlat/2 9948 9948 69125 11.9GB/s jpg [ -1.3%] +BM_UFlat/3 31999 31998 21898 2.7GB/s pdf [ +6.5%] +BM_UFlat/4 318909 318829 2204 1.2GB/s html4 [ +6.5%] +BM_UFlat/5 31384 31390 22363 747.5MB/s cp [ +9.2%] +BM_UFlat/6 14037 14034 49858 757.7MB/s c [+10.6%] +BM_UFlat/7 4612 4612 151395 769.5MB/s lsp [ +9.5%] +BM_UFlat/8 1203174 1203007 582 816.3MB/s xls [+19.3%] +BM_UFlat/9 253869 253955 2757 571.1MB/s txt1 [+11.4%] +BM_UFlat/10 219292 219290 3194 544.4MB/s txt2 [+12.1%] +BM_UFlat/11 672135 672131 1000 605.5MB/s txt3 [+11.2%] +BM_UFlat/12 902512 902492 776 509.2MB/s txt4 [+12.5%] +BM_UFlat/13 372110 371998 1881 1.3GB/s bin [ +5.8%] +BM_UFlat/14 50407 50407 10000 723.5MB/s sum [+13.5%] +BM_UFlat/15 5699 5701 100000 707.2MB/s man [+12.4%] +BM_UFlat/16 83448 83424 8383 1.3GB/s pb [ +5.7%] +BM_UFlat/17 256958 256963 2723 684.1MB/s gaviota [ +7.9%] +BM_UValidate/0 42795 42796 16351 2.2GB/s html [+25.8%] +BM_UValidate/1 490672 490622 1427 1.3GB/s urls [+22.7%] +BM_UValidate/2 237 237 2950297 499.0GB/s jpg [+24.9%] +BM_UValidate/3 14610 14611 47901 6.0GB/s pdf [+26.8%] +BM_UValidate/4 171973 171990 4071 2.2GB/s html4 [+25.7%] + + + +------------------------------------------------------------------------ +r37 | snappy.mirrorbot@gmail.com | 2011-05-17 10:48:25 +0200 (Tue, 17 May 2011) | 10 lines + + +Fix the numbering of the headlines in the Snappy format description. + +R=csilvers +DELTA=4 (0 added, 0 deleted, 4 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1906 + +------------------------------------------------------------------------ +r36 | snappy.mirrorbot@gmail.com | 2011-05-16 10:59:18 +0200 (Mon, 16 May 2011) | 12 lines + + +Fix public issue #32: Add compressed format documentation for Snappy. +This text is new, but an earlier version from Zeev Tarantov was used +as reference. + +R=csilvers +DELTA=112 (111 added, 0 deleted, 1 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1867 + +------------------------------------------------------------------------ +r35 | snappy.mirrorbot@gmail.com | 2011-05-09 23:29:02 +0200 (Mon, 09 May 2011) | 12 lines + + +Fix public issue #39: Pick out the median runs based on CPU time, +not real time. Also, use nth_element instead of sort, since we +only need one element. + +R=csilvers +DELTA=5 (3 added, 0 deleted, 2 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1799 + +------------------------------------------------------------------------ +r34 | snappy.mirrorbot@gmail.com | 2011-05-09 23:28:45 +0200 (Mon, 09 May 2011) | 19 lines + + +Fix public issue #38: Make the microbenchmark framework handle +properly cases where gettimeofday() can stand return the same +result twice (as sometimes on GNU/Hurd) or go backwards +(as when the user adjusts the clock). We avoid a division-by-zero, +and put a lower bound on the number of iterations -- the same +amount as we use to calibrate. + +We should probably use CLOCK_MONOTONIC for platforms that support +it, to be robust against clock adjustments; we already use Windows' +monotonic timers. However, that's for a later changelist. + +R=csilvers +DELTA=7 (5 added, 0 deleted, 2 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1798 + +------------------------------------------------------------------------ +r33 | snappy.mirrorbot@gmail.com | 2011-05-04 01:22:52 +0200 (Wed, 04 May 2011) | 11 lines + + +Fix public issue #37: Only link snappy_unittest against -lz and other autodetected +libraries, not libsnappy.so (which doesn't need any such dependency). + +R=csilvers +DELTA=20 (14 added, 0 deleted, 6 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1710 + +------------------------------------------------------------------------ +r32 | snappy.mirrorbot@gmail.com | 2011-05-04 01:22:33 +0200 (Wed, 04 May 2011) | 11 lines + + +Release Snappy 1.0.2, to get the license change and various other fixes into +a release. + +R=csilvers +DELTA=239 (236 added, 0 deleted, 3 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1709 + +------------------------------------------------------------------------ +r31 | snappy.mirrorbot@gmail.com | 2011-04-26 14:34:55 +0200 (Tue, 26 Apr 2011) | 15 lines + + +Fix public issue #30: Stop using gettimeofday() altogether on Win32, +as MSVC doesn't include it. Replace with QueryPerformanceCounter(), +which is monotonic and probably reasonably high-resolution. +(Some machines have traditionally had bugs in QPC, but they should +be relatively rare these days, and there's really no much better +alternative that I know of.) + +R=csilvers +DELTA=74 (55 added, 19 deleted, 0 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1556 + +------------------------------------------------------------------------ +r30 | snappy.mirrorbot@gmail.com | 2011-04-26 14:34:37 +0200 (Tue, 26 Apr 2011) | 11 lines + + +Fix public issue #31: Don't reset PATH in autogen.sh; instead, do the trickery +we need for our own build system internally. + +R=csilvers +DELTA=16 (13 added, 1 deleted, 2 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1555 + +------------------------------------------------------------------------ +r29 | snappy.mirrorbot@gmail.com | 2011-04-16 00:55:56 +0200 (Sat, 16 Apr 2011) | 12 lines + + +When including <windows.h>, define WIN32_LEAN_AND_MEAN first, +so we won't pull in macro definitions of things like min() and max(), +which can conflict with <algorithm>. + +R=csilvers +DELTA=1 (1 added, 0 deleted, 0 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1485 + +------------------------------------------------------------------------ +r28 | snappy.mirrorbot@gmail.com | 2011-04-11 11:07:01 +0200 (Mon, 11 Apr 2011) | 15 lines + + +Fix public issue #29: Write CPU timing code for Windows, based on GetProcessTimes() +instead of getursage(). + +I thought I'd already committed this patch, so that the 1.0.1 release already +would have a Windows-compatible snappy_unittest, but I'd seemingly deleted it +instead, so this is a reconstruction. + +R=csilvers +DELTA=43 (39 added, 3 deleted, 1 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1295 + +------------------------------------------------------------------------ +r27 | snappy.mirrorbot@gmail.com | 2011-04-08 11:51:53 +0200 (Fri, 08 Apr 2011) | 22 lines + + +Include C bindings of Snappy, contributed by Martin Gieseking. + +I've made a few changes since Martin's version; mostly style nits, but also +a semantic change -- most functions that return bool in the C++ version now +return an enum, to better match typical C (and zlib) semantics. + +I've kept the copyright notice, since Martin is obviously the author here; +he has signed the contributor license agreement, though, so this should not +hinder Google's use in the future. + +We'll need to update the libtool version number to match the added interface, +but as of http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html +I'm going to wait until public release. + +R=csilvers +DELTA=238 (233 added, 0 deleted, 5 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1294 + +------------------------------------------------------------------------ +r26 | snappy.mirrorbot@gmail.com | 2011-04-07 18:36:43 +0200 (Thu, 07 Apr 2011) | 13 lines + + +Replace geo.protodata with a newer version. + +The data compresses/decompresses slightly faster than the old data, and has +similar density. + +R=lookingbill +DELTA=1 (0 added, 0 deleted, 1 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1288 + +------------------------------------------------------------------------ +r25 | snappy.mirrorbot@gmail.com | 2011-03-30 22:27:53 +0200 (Wed, 30 Mar 2011) | 12 lines + + +Fix public issue #27: Add HAVE_CONFIG_H tests around the config.h +inclusion in snappy-stubs-internal.h, which eases compiling outside the +automake/autoconf framework. + +R=csilvers +DELTA=5 (4 added, 1 deleted, 0 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1152 + +------------------------------------------------------------------------ +r24 | snappy.mirrorbot@gmail.com | 2011-03-30 22:27:39 +0200 (Wed, 30 Mar 2011) | 13 lines + + +Fix public issue #26: Take memory allocation and reallocation entirely out of the +Measure() loop. This gives all algorithms a small speed boost, except Snappy which +already didn't do reallocation (so the measurements were slightly biased in its +favor). + +R=csilvers +DELTA=92 (69 added, 9 deleted, 14 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1151 + +------------------------------------------------------------------------ +r23 | snappy.mirrorbot@gmail.com | 2011-03-30 22:25:09 +0200 (Wed, 30 Mar 2011) | 18 lines + + +Renamed "namespace zippy" to "namespace snappy" to reduce +the differences from the opensource code. Will make it easier +in the future to mix-and-match third-party code that uses +snappy with google code. + +Currently, csearch shows that the only external user of +"namespace zippy" is some bigtable code that accesses +a TEST variable, which is temporarily kept in the zippy +namespace. + +R=sesse +DELTA=123 (18 added, 3 deleted, 102 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1150 + +------------------------------------------------------------------------ +r22 | snappy.mirrorbot@gmail.com | 2011-03-29 00:17:04 +0200 (Tue, 29 Mar 2011) | 11 lines + + +Put back the final few lines of what was truncated during the +license header change. + +R=csilvers +DELTA=5 (4 added, 0 deleted, 1 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1094 + +------------------------------------------------------------------------ +r21 | snappy.mirrorbot@gmail.com | 2011-03-26 03:34:34 +0100 (Sat, 26 Mar 2011) | 20 lines + + +Change on 2011-03-25 19:18:00-07:00 by sesse + + Replace the Apache 2.0 license header by the BSD-type license header; + somehow a lot of the files were missed in the last round. + + R=dannyb,csilvers + DELTA=147 (74 added, 2 deleted, 71 changed) + +Change on 2011-03-25 19:25:07-07:00 by sesse + + Unbreak the build; the relicensing removed a bit too much (only comments + were intended, but I also accidentially removed some of the top lines of + the actual source). + + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1072 + +------------------------------------------------------------------------ +r20 | snappy.mirrorbot@gmail.com | 2011-03-25 17:14:41 +0100 (Fri, 25 Mar 2011) | 10 lines + + +Change Snappy from the Apache 2.0 to a BSD-type license. + +R=dannyb +DELTA=328 (80 added, 184 deleted, 64 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1061 + +------------------------------------------------------------------------ +r19 | snappy.mirrorbot@gmail.com | 2011-03-25 01:39:01 +0100 (Fri, 25 Mar 2011) | 11 lines + + +Release Snappy 1.0.1, to soup up all the various small changes +that have been made since release. + +R=csilvers +DELTA=266 (260 added, 0 deleted, 6 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1057 + +------------------------------------------------------------------------ +r18 | snappy.mirrorbot@gmail.com | 2011-03-24 20:15:54 +0100 (Thu, 24 Mar 2011) | 11 lines + + +Fix a microbenchmark crash on mingw32; seemingly %lld is not universally +supported on Windows, and %I64d is recommended instead. + +R=csilvers +DELTA=6 (5 added, 0 deleted, 1 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1034 + +------------------------------------------------------------------------ +r17 | snappy.mirrorbot@gmail.com | 2011-03-24 20:15:27 +0100 (Thu, 24 Mar 2011) | 13 lines + + +Fix public issue #19: Fix unit test when Google Test is installed but the +gflags package isn't (Google Test is not properly initialized). + +Patch by Martin Gieseking. + +R=csilvers +DELTA=2 (1 added, 0 deleted, 1 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1033 + +------------------------------------------------------------------------ +r16 | snappy.mirrorbot@gmail.com | 2011-03-24 20:13:57 +0100 (Thu, 24 Mar 2011) | 15 lines + + +Make the unit test work on systems without mmap(). This is required for, +among others, Windows support. For Windows in specific, we could have used +CreateFileMapping/MapViewOfFile, but this should at least get us a bit closer +to compiling, and is of course also relevant for embedded systems with no MMU. + +(Part 2/2) + +R=csilvers +DELTA=15 (12 added, 3 deleted, 0 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1032 + +------------------------------------------------------------------------ +r15 | snappy.mirrorbot@gmail.com | 2011-03-24 20:12:27 +0100 (Thu, 24 Mar 2011) | 15 lines + + +Make the unit test work on systems without mmap(). This is required for, +among others, Windows support. For Windows in specific, we could have used +CreateFileMapping/MapViewOfFile, but this should at least get us a bit closer +to compiling, and is of course also relevant for embedded systems with no MMU. + +(Part 1/2) + +R=csilvers +DELTA=9 (8 added, 0 deleted, 1 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1031 + +------------------------------------------------------------------------ +r14 | snappy.mirrorbot@gmail.com | 2011-03-24 00:17:36 +0100 (Thu, 24 Mar 2011) | 14 lines + + +Fix public issue #12: Don't keep autogenerated auto* files in Subversion; +it causes problems with others sending patches etc.. + +We can't get this 100% hermetic anyhow, due to files like lt~obsolete.m4, +so we can just as well go cleanly in the other direction. + +R=csilvers +DELTA=21038 (0 added, 21036 deleted, 2 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=1012 + +------------------------------------------------------------------------ +r13 | snappy.mirrorbot@gmail.com | 2011-03-23 18:50:49 +0100 (Wed, 23 Mar 2011) | 11 lines + + +Fix public issue tracker bug #3: Call AC_SUBST([LIBTOOL_DEPS]), or the rule +to rebuild libtool in Makefile.am won't work. + +R=csilvers +DELTA=1 (1 added, 0 deleted, 0 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=997 + +------------------------------------------------------------------------ +r12 | snappy.mirrorbot@gmail.com | 2011-03-23 12:16:39 +0100 (Wed, 23 Mar 2011) | 11 lines + + +Fix public issue #10: Don't add GTEST_CPPFLAGS to snappy_unittest_CXXFLAGS; +it's not needed (CPPFLAGS are always included when compiling). + +R=csilvers +DELTA=1 (0 added, 1 deleted, 0 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=994 + +------------------------------------------------------------------------ +r11 | snappy.mirrorbot@gmail.com | 2011-03-23 12:16:18 +0100 (Wed, 23 Mar 2011) | 11 lines + + +Fix public issue #9: Add -Wall -Werror to automake flags. +(This concerns automake itself, not the C++ compiler.) + +R=csilvers +DELTA=4 (3 added, 0 deleted, 1 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=993 + +------------------------------------------------------------------------ +r10 | snappy.mirrorbot@gmail.com | 2011-03-23 12:13:37 +0100 (Wed, 23 Mar 2011) | 10 lines + + +Fix a typo in the Snappy README file. + +R=csilvers +DELTA=1 (0 added, 0 deleted, 1 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=992 + +------------------------------------------------------------------------ +r9 | snappy.mirrorbot@gmail.com | 2011-03-23 12:13:13 +0100 (Wed, 23 Mar 2011) | 11 lines + + +Fix public issue #6: Add a --with-gflags for disabling gflags autodetection +and using a manually given setting (use/don't use) instead. + +R=csilvers +DELTA=16 (13 added, 0 deleted, 3 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=991 + +------------------------------------------------------------------------ +r8 | snappy.mirrorbot@gmail.com | 2011-03-23 12:12:44 +0100 (Wed, 23 Mar 2011) | 12 lines + + +Fix public issue #5: Replace the EXTRA_LIBSNAPPY_LDFLAGS setup with something +slightly more standard, that also doesn't leak libtool command-line into +configure.ac. + +R=csilvers +DELTA=7 (0 added, 4 deleted, 3 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=990 + +------------------------------------------------------------------------ +r7 | snappy.mirrorbot@gmail.com | 2011-03-23 12:12:22 +0100 (Wed, 23 Mar 2011) | 10 lines + + +Fix public issue #4: Properly quote all macro arguments in configure.ac. + +R=csilvers +DELTA=16 (0 added, 0 deleted, 16 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=989 + +------------------------------------------------------------------------ +r6 | snappy.mirrorbot@gmail.com | 2011-03-23 12:11:54 +0100 (Wed, 23 Mar 2011) | 11 lines + + +Fix public issue #7: Don't use internal variables named ac_*, as those belong +to autoconf's namespace. + +R=csilvers +DELTA=6 (0 added, 0 deleted, 6 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=988 + +------------------------------------------------------------------------ +r5 | snappy.mirrorbot@gmail.com | 2011-03-23 12:11:09 +0100 (Wed, 23 Mar 2011) | 10 lines + + +Add missing licensing headers to a few files. (Part 2/2.) + +R=csilvers +DELTA=12 (12 added, 0 deleted, 0 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=987 + +------------------------------------------------------------------------ +r4 | snappy.mirrorbot@gmail.com | 2011-03-23 12:10:39 +0100 (Wed, 23 Mar 2011) | 10 lines + + +Add mising licensing headers to a few files. (Part 1/2.) + +R=csilvers +DELTA=24 (24 added, 0 deleted, 0 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=986 + +------------------------------------------------------------------------ +r3 | snappy.mirrorbot@gmail.com | 2011-03-23 12:10:04 +0100 (Wed, 23 Mar 2011) | 11 lines + + +Use the correct license file for the Apache 2.0 license; +spotted by Florian Weimer. + +R=csilvers +DELTA=202 (174 added, 0 deleted, 28 changed) + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION=985 + +------------------------------------------------------------------------ +r2 | snappy.mirrorbot@gmail.com | 2011-03-18 18:14:15 +0100 (Fri, 18 Mar 2011) | 6 lines + + + + +Revision created by MOE tool push_codebase. +MOE_MIGRATION= + +------------------------------------------------------------------------ +r1 | sesse@google.com | 2011-03-18 18:13:52 +0100 (Fri, 18 Mar 2011) | 2 lines + +Create trunk directory. + +------------------------------------------------------------------------ diff --git a/snappy-1.1.0/INSTALL b/snappy-1.1.0/INSTALL new file mode 100644 index 0000000..a1e89e1 --- /dev/null +++ b/snappy-1.1.0/INSTALL @@ -0,0 +1,370 @@ +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/snappy-1.1.0/Makefile.am b/snappy-1.1.0/Makefile.am new file mode 100644 index 0000000..f17b2e3 --- /dev/null +++ b/snappy-1.1.0/Makefile.am @@ -0,0 +1,23 @@ +ACLOCAL_AMFLAGS = -I m4 + +# Library. +lib_LTLIBRARIES = libsnappy.la +libsnappy_la_SOURCES = snappy.cc snappy-sinksource.cc snappy-stubs-internal.cc snappy-c.cc +libsnappy_la_LDFLAGS = -version-info $(SNAPPY_LTVERSION) + +include_HEADERS = snappy.h snappy-sinksource.h snappy-stubs-public.h snappy-c.h +noinst_HEADERS = snappy-internal.h snappy-stubs-internal.h snappy-test.h + +# Unit tests and benchmarks. +snappy_unittest_CPPFLAGS = $(gflags_CFLAGS) $(GTEST_CPPFLAGS) +snappy_unittest_SOURCES = snappy_unittest.cc snappy-test.cc +snappy_unittest_LDFLAGS = $(GTEST_LDFLAGS) +snappy_unittest_LDADD = libsnappy.la $(UNITTEST_LIBS) $(gflags_LIBS) $(GTEST_LIBS) +TESTS = snappy_unittest +noinst_PROGRAMS = $(TESTS) + +EXTRA_DIST = autogen.sh testdata/alice29.txt testdata/asyoulik.txt testdata/baddata1.snappy testdata/baddata2.snappy testdata/baddata3.snappy testdata/cp.html testdata/fields.c testdata/geo.protodata testdata/grammar.lsp testdata/house.jpg testdata/html testdata/html_x_4 testdata/kennedy.xls testdata/kppkn.gtb testdata/lcet10.txt testdata/mapreduce-osdi-1.pdf testdata/plrabn12.txt testdata/ptt5 testdata/sum testdata/urls.10K testdata/xargs.1 +dist_doc_DATA = ChangeLog COPYING INSTALL NEWS README format_description.txt framing_format.txt + +libtool: $(LIBTOOL_DEPS) + $(SHELL) ./config.status --recheck diff --git a/snappy-1.1.0/Makefile.in b/snappy-1.1.0/Makefile.in new file mode 100644 index 0000000..62726d8 --- /dev/null +++ b/snappy-1.1.0/Makefile.in @@ -0,0 +1,956 @@ +# Makefile.in generated by automake 1.11.3 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. + +@SET_MAKE@ + + + + +VPATH = @srcdir@ +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@ +TESTS = snappy_unittest$(EXEEXT) +noinst_PROGRAMS = $(am__EXEEXT_1) +subdir = . +DIST_COMMON = README $(am__configure_deps) $(dist_doc_DATA) \ + $(include_HEADERS) $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/snappy-stubs-public.h.in $(top_srcdir)/configure \ + AUTHORS COPYING ChangeLog INSTALL NEWS config.guess config.sub \ + depcomp install-sh ltmain.sh missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gtest.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 = snappy-stubs-public.h +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)$(docdir)" \ + "$(DESTDIR)$(includedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libsnappy_la_LIBADD = +am_libsnappy_la_OBJECTS = snappy.lo snappy-sinksource.lo \ + snappy-stubs-internal.lo snappy-c.lo +libsnappy_la_OBJECTS = $(am_libsnappy_la_OBJECTS) +libsnappy_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libsnappy_la_LDFLAGS) $(LDFLAGS) -o $@ +am__EXEEXT_1 = snappy_unittest$(EXEEXT) +PROGRAMS = $(noinst_PROGRAMS) +am_snappy_unittest_OBJECTS = \ + snappy_unittest-snappy_unittest.$(OBJEXT) \ + snappy_unittest-snappy-test.$(OBJEXT) +snappy_unittest_OBJECTS = $(am_snappy_unittest_OBJECTS) +am__DEPENDENCIES_1 = +snappy_unittest_DEPENDENCIES = libsnappy.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +snappy_unittest_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(snappy_unittest_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libsnappy_la_SOURCES) $(snappy_unittest_SOURCES) +DIST_SOURCES = $(libsnappy_la_SOURCES) $(snappy_unittest_SOURCES) +DATA = $(dist_doc_DATA) +HEADERS = $(include_HEADERS) $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +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 +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@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +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@ +GTEST_CONFIG = @GTEST_CONFIG@ +GTEST_CPPFLAGS = @GTEST_CPPFLAGS@ +GTEST_CXXFLAGS = @GTEST_CXXFLAGS@ +GTEST_LDFLAGS = @GTEST_LDFLAGS@ +GTEST_LIBS = @GTEST_LIBS@ +GTEST_VERSION = @GTEST_VERSION@ +HAVE_GTEST = @HAVE_GTEST@ +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@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +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@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SNAPPY_LTVERSION = @SNAPPY_LTVERSION@ +SNAPPY_MAJOR = @SNAPPY_MAJOR@ +SNAPPY_MINOR = @SNAPPY_MINOR@ +SNAPPY_PATCHLEVEL = @SNAPPY_PATCHLEVEL@ +STRIP = @STRIP@ +UNITTEST_LIBS = @UNITTEST_LIBS@ +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_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_cv_have_stddef_h = @ac_cv_have_stddef_h@ +ac_cv_have_stdint_h = @ac_cv_have_stdint_h@ +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@ +gflags_CFLAGS = @gflags_CFLAGS@ +gflags_LIBS = @gflags_LIBS@ +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@ +ACLOCAL_AMFLAGS = -I m4 + +# Library. +lib_LTLIBRARIES = libsnappy.la +libsnappy_la_SOURCES = snappy.cc snappy-sinksource.cc snappy-stubs-internal.cc snappy-c.cc +libsnappy_la_LDFLAGS = -version-info $(SNAPPY_LTVERSION) +include_HEADERS = snappy.h snappy-sinksource.h snappy-stubs-public.h snappy-c.h +noinst_HEADERS = snappy-internal.h snappy-stubs-internal.h snappy-test.h + +# Unit tests and benchmarks. +snappy_unittest_CPPFLAGS = $(gflags_CFLAGS) $(GTEST_CPPFLAGS) +snappy_unittest_SOURCES = snappy_unittest.cc snappy-test.cc +snappy_unittest_LDFLAGS = $(GTEST_LDFLAGS) +snappy_unittest_LDADD = libsnappy.la $(UNITTEST_LIBS) $(gflags_LIBS) $(GTEST_LIBS) +EXTRA_DIST = autogen.sh testdata/alice29.txt testdata/asyoulik.txt testdata/baddata1.snappy testdata/baddata2.snappy testdata/baddata3.snappy testdata/cp.html testdata/fields.c testdata/geo.protodata testdata/grammar.lsp testdata/house.jpg testdata/html testdata/html_x_4 testdata/kennedy.xls testdata/kppkn.gtb testdata/lcet10.txt testdata/mapreduce-osdi-1.pdf testdata/plrabn12.txt testdata/ptt5 testdata/sum testdata/urls.10K testdata/xargs.1 +dist_doc_DATA = ChangeLog COPYING INSTALL NEWS README format_description.txt framing_format.txt +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +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 +snappy-stubs-public.h: $(top_builddir)/config.status $(srcdir)/snappy-stubs-public.h.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @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 " $(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 +libsnappy.la: $(libsnappy_la_OBJECTS) $(libsnappy_la_DEPENDENCIES) $(EXTRA_libsnappy_la_DEPENDENCIES) + $(libsnappy_la_LINK) -rpath $(libdir) $(libsnappy_la_OBJECTS) $(libsnappy_la_LIBADD) $(LIBS) + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +snappy_unittest$(EXEEXT): $(snappy_unittest_OBJECTS) $(snappy_unittest_DEPENDENCIES) $(EXTRA_snappy_unittest_DEPENDENCIES) + @rm -f snappy_unittest$(EXEEXT) + $(snappy_unittest_LINK) $(snappy_unittest_OBJECTS) $(snappy_unittest_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snappy-c.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snappy-sinksource.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snappy-stubs-internal.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snappy.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snappy_unittest-snappy-test.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snappy_unittest-snappy_unittest.Po@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +snappy_unittest-snappy_unittest.o: snappy_unittest.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(snappy_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT snappy_unittest-snappy_unittest.o -MD -MP -MF $(DEPDIR)/snappy_unittest-snappy_unittest.Tpo -c -o snappy_unittest-snappy_unittest.o `test -f 'snappy_unittest.cc' || echo '$(srcdir)/'`snappy_unittest.cc +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/snappy_unittest-snappy_unittest.Tpo $(DEPDIR)/snappy_unittest-snappy_unittest.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='snappy_unittest.cc' object='snappy_unittest-snappy_unittest.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(snappy_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o snappy_unittest-snappy_unittest.o `test -f 'snappy_unittest.cc' || echo '$(srcdir)/'`snappy_unittest.cc + +snappy_unittest-snappy_unittest.obj: snappy_unittest.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(snappy_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT snappy_unittest-snappy_unittest.obj -MD -MP -MF $(DEPDIR)/snappy_unittest-snappy_unittest.Tpo -c -o snappy_unittest-snappy_unittest.obj `if test -f 'snappy_unittest.cc'; then $(CYGPATH_W) 'snappy_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/snappy_unittest.cc'; fi` +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/snappy_unittest-snappy_unittest.Tpo $(DEPDIR)/snappy_unittest-snappy_unittest.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='snappy_unittest.cc' object='snappy_unittest-snappy_unittest.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(snappy_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o snappy_unittest-snappy_unittest.obj `if test -f 'snappy_unittest.cc'; then $(CYGPATH_W) 'snappy_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/snappy_unittest.cc'; fi` + +snappy_unittest-snappy-test.o: snappy-test.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(snappy_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT snappy_unittest-snappy-test.o -MD -MP -MF $(DEPDIR)/snappy_unittest-snappy-test.Tpo -c -o snappy_unittest-snappy-test.o `test -f 'snappy-test.cc' || echo '$(srcdir)/'`snappy-test.cc +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/snappy_unittest-snappy-test.Tpo $(DEPDIR)/snappy_unittest-snappy-test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='snappy-test.cc' object='snappy_unittest-snappy-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(snappy_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o snappy_unittest-snappy-test.o `test -f 'snappy-test.cc' || echo '$(srcdir)/'`snappy-test.cc + +snappy_unittest-snappy-test.obj: snappy-test.cc +@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(snappy_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT snappy_unittest-snappy-test.obj -MD -MP -MF $(DEPDIR)/snappy_unittest-snappy-test.Tpo -c -o snappy_unittest-snappy-test.obj `if test -f 'snappy-test.cc'; then $(CYGPATH_W) 'snappy-test.cc'; else $(CYGPATH_W) '$(srcdir)/snappy-test.cc'; fi` +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/snappy_unittest-snappy-test.Tpo $(DEPDIR)/snappy_unittest-snappy-test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='snappy-test.cc' object='snappy_unittest-snappy-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(snappy_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o snappy_unittest-snappy-test.obj `if test -f 'snappy-test.cc'; then $(CYGPATH_W) 'snappy-test.cc'; else $(CYGPATH_W) '$(srcdir)/snappy-test.cc'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-dist_docDATA: $(dist_doc_DATA) + @$(NORMAL_INSTALL) + test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)" + @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \ + 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_DATA) $$files '$(DESTDIR)$(docdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ + done + +uninstall-dist_docDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + 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)$(includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(includedir)'; $(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) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + 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: $(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 + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + +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 + -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 a+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 + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) \ + config.h +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(includedir)"; 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 \ + clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-dist_docDATA install-includeHEADERS + +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 -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -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-dist_docDATA uninstall-includeHEADERS \ + uninstall-libLTLIBRARIES + +.MAKE: all check-am install-am install-strip + +.PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \ + clean clean-generic clean-libLTLIBRARIES clean-libtool \ + clean-noinstPROGRAMS ctags dist dist-all dist-bzip2 dist-gzip \ + dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-compile 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-dist_docDATA install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am \ + install-includeHEADERS install-info install-info-am \ + install-libLTLIBRARIES install-man install-pdf install-pdf-am \ + 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-dist_docDATA \ + uninstall-includeHEADERS uninstall-libLTLIBRARIES + + +libtool: $(LIBTOOL_DEPS) + $(SHELL) ./config.status --recheck + +# 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/snappy-1.1.0/NEWS b/snappy-1.1.0/NEWS new file mode 100644 index 0000000..ab9bf90 --- /dev/null +++ b/snappy-1.1.0/NEWS @@ -0,0 +1,104 @@ +Snappy v1.1.0, January 18th 2013: + + * Snappy now uses 64 kB block size instead of 32 kB. On average, + this means it compresses about 3% denser (more so for some + inputs), at the same or better speeds. + + * libsnappy no longer depends on iostream. + + * Some small performance improvements in compression on x86 + (0.5–1%). + + * Various portability fixes for ARM-based platforms, for MSVC, + and for GNU/Hurd. + + +Snappy v1.0.5, February 24th 2012: + + * More speed improvements. Exactly how big will depend on + the architecture: + + - 3–10% faster decompression for the base case (x86-64). + + - ARMv7 and higher can now use unaligned accesses, + and will see about 30% faster decompression and + 20–40% faster compression. + + - 32-bit platforms (ARM and 32-bit x86) will see 2–5% + faster compression. + + These are all cumulative (e.g., ARM gets all three speedups). + + * Fixed an issue where the unit test would crash on system + with less than 256 MB address space available, + e.g. some embedded platforms. + + * Added a framing format description, for use over e.g. HTTP, + or for a command-line compressor. We do not have any + implementations of this at the current point, but there seems + to be enough of a general interest in the topic. + Also make the format description slightly clearer. + + * Remove some compile-time warnings in -Wall + (mostly signed/unsigned comparisons), for easier embedding + into projects that use -Wall -Werror. + + +Snappy v1.0.4, September 15th 2011: + + * Speeded up the decompressor somewhat; typically about 2–8% + for Core i7, in 64-bit mode (comparable for Opteron). + Somewhat more for some tests, almost no gain for others. + + * Make Snappy compile on certain platforms it didn't before + (Solaris with SunPro C++, HP-UX, AIX). + + * Correct some minor errors in the format description. + + +Snappy v1.0.3, June 2nd 2011: + + * Speeded up the decompressor somewhat; about 3-6% for Core 2, + 6-13% for Core i7, and 5-12% for Opteron (all in 64-bit mode). + + * Added compressed format documentation. This text is new, + but an earlier version from Zeev Tarantov was used as reference. + + * Only link snappy_unittest against -lz and other autodetected + libraries, not libsnappy.so (which doesn't need any such dependency). + + * Fixed some display issues in the microbenchmarks, one of which would + frequently make the test crash on GNU/Hurd. + + +Snappy v1.0.2, April 29th 2011: + + * Relicense to a BSD-type license. + + * Added C bindings, contributed by Martin Gieseking. + + * More Win32 fixes, in particular for MSVC. + + * Replace geo.protodata with a newer version. + + * Fix timing inaccuracies in the unit test when comparing Snappy + to other algorithms. + + +Snappy v1.0.1, March 25th 2011: + +This is a maintenance release, mostly containing minor fixes. +There is no new functionality. The most important fixes include: + + * The COPYING file and all licensing headers now correctly state that + Snappy is licensed under the Apache 2.0 license. + + * snappy_unittest should now compile natively under Windows, + as well as on embedded systems with no mmap(). + + * Various autotools nits have been fixed. + + +Snappy v1.0, March 17th 2011: + + * Initial version. diff --git a/snappy-1.1.0/README b/snappy-1.1.0/README new file mode 100644 index 0000000..3bc8888 --- /dev/null +++ b/snappy-1.1.0/README @@ -0,0 +1,135 @@ +Snappy, a fast compressor/decompressor. + + +Introduction +============ + +Snappy is a compression/decompression library. It does not aim for maximum +compression, or compatibility with any other compression library; instead, +it aims for very high speeds and reasonable compression. For instance, +compared to the fastest mode of zlib, Snappy is an order of magnitude faster +for most inputs, but the resulting compressed files are anywhere from 20% to +100% bigger. (For more information, see "Performance", below.) + +Snappy has the following properties: + + * Fast: Compression speeds at 250 MB/sec and beyond, with no assembler code. + See "Performance" below. + * Stable: Over the last few years, Snappy has compressed and decompressed + petabytes of data in Google's production environment. The Snappy bitstream + format is stable and will not change between versions. + * Robust: The Snappy decompressor is designed not to crash in the face of + corrupted or malicious input. + * Free and open source software: Snappy is licensed under a BSD-type license. + For more information, see the included COPYING file. + +Snappy has previously been called "Zippy" in some Google presentations +and the like. + + +Performance +=========== + +Snappy is intended to be fast. On a single core of a Core i7 processor +in 64-bit mode, it compresses at about 250 MB/sec or more and decompresses at +about 500 MB/sec or more. (These numbers are for the slowest inputs in our +benchmark suite; others are much faster.) In our tests, Snappy usually +is faster than algorithms in the same class (e.g. LZO, LZF, FastLZ, QuickLZ, +etc.) while achieving comparable compression ratios. + +Typical compression ratios (based on the benchmark suite) are about 1.5-1.7x +for plain text, about 2-4x for HTML, and of course 1.0x for JPEGs, PNGs and +other already-compressed data. Similar numbers for zlib in its fastest mode +are 2.6-2.8x, 3-7x and 1.0x, respectively. More sophisticated algorithms are +capable of achieving yet higher compression rates, although usually at the +expense of speed. Of course, compression ratio will vary significantly with +the input. + +Although Snappy should be fairly portable, it is primarily optimized +for 64-bit x86-compatible processors, and may run slower in other environments. +In particular: + + - Snappy uses 64-bit operations in several places to process more data at + once than would otherwise be possible. + - Snappy assumes unaligned 32- and 64-bit loads and stores are cheap. + On some platforms, these must be emulated with single-byte loads + and stores, which is much slower. + - Snappy assumes little-endian throughout, and needs to byte-swap data in + several places if running on a big-endian platform. + +Experience has shown that even heavily tuned code can be improved. +Performance optimizations, whether for 64-bit x86 or other platforms, +are of course most welcome; see "Contact", below. + + +Usage +===== + +Note that Snappy, both the implementation and the main interface, +is written in C++. However, several third-party bindings to other languages +are available; see the Google Code page at http://code.google.com/p/snappy/ +for more information. Also, if you want to use Snappy from C code, you can +use the included C bindings in snappy-c.h. + +To use Snappy from your own C++ program, include the file "snappy.h" from +your calling file, and link against the compiled library. + +There are many ways to call Snappy, but the simplest possible is + + snappy::Compress(input.data(), input.size(), &output); + +and similarly + + snappy::Uncompress(input.data(), input.size(), &output); + +where "input" and "output" are both instances of std::string. + +There are other interfaces that are more flexible in various ways, including +support for custom (non-array) input sources. See the header file for more +information. + + +Tests and benchmarks +==================== + +When you compile Snappy, snappy_unittest is compiled in addition to the +library itself. You do not need it to use the compressor from your own library, +but it contains several useful components for Snappy development. + +First of all, it contains unit tests, verifying correctness on your machine in +various scenarios. If you want to change or optimize Snappy, please run the +tests to verify you have not broken anything. Note that if you have the +Google Test library installed, unit test behavior (especially failures) will be +significantly more user-friendly. You can find Google Test at + + http://code.google.com/p/googletest/ + +You probably also want the gflags library for handling of command-line flags; +you can find it at + + http://code.google.com/p/google-gflags/ + +In addition to the unit tests, snappy contains microbenchmarks used to +tune compression and decompression performance. These are automatically run +before the unit tests, but you can disable them using the flag +--run_microbenchmarks=false if you have gflags installed (otherwise you will +need to edit the source). + +Finally, snappy can benchmark Snappy against a few other compression libraries +(zlib, LZO, LZF, FastLZ and QuickLZ), if they were detected at configure time. +To benchmark using a given file, give the compression algorithm you want to test +Snappy against (e.g. --zlib) and then a list of one or more file names on the +command line. The testdata/ directory contains the files used by the +microbenchmark, which should provide a reasonably balanced starting point for +benchmarking. (Note that baddata[1-3].snappy are not intended as benchmarks; they +are used to verify correctness in the presence of corrupted data in the unit +test.) + + +Contact +======= + +Snappy is distributed through Google Code. For the latest version, a bug tracker, +and other information, see + + http://code.google.com/p/snappy/ diff --git a/snappy-1.1.0/aclocal.m4 b/snappy-1.1.0/aclocal.m4 new file mode 100644 index 0000000..b4c1d52 --- /dev/null +++ b/snappy-1.1.0/aclocal.m4 @@ -0,0 +1,9738 @@ +# generated automatically by aclocal 1.11.3 -*- 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.68],, +[m4_warning([this file was generated for autoconf 2.68. +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'.])]) + +# 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 + + + +# 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], [[!?.]$], [], [.]) +)]) + + + + + +# _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@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@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@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_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@_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@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@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@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 + +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@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 + +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 + +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 + +# 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 + + + +# _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], []) + + +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])]) + +# 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 +]) + +# 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) +]) + +# 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])]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant <scott@netsplit.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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# 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. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES + +# 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.3], [], + [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.3])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 +]) + +# 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/gtest.m4]) diff --git a/snappy-1.1.0/autogen.sh b/snappy-1.1.0/autogen.sh new file mode 100755 index 0000000..9d0ebe9 --- /dev/null +++ b/snappy-1.1.0/autogen.sh @@ -0,0 +1,7 @@ +#! /bin/sh -e +rm -rf autom4te.cache +aclocal -I m4 +autoheader +libtoolize --copy +automake --add-missing --copy +autoconf diff --git a/snappy-1.1.0/config.guess b/snappy-1.1.0/config.guess new file mode 100755 index 0000000..d622a44 --- /dev/null +++ b/snappy-1.1.0/config.guess @@ -0,0 +1,1530 @@ +#! /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@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@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@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@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@ccMail.Census.GOV> + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@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@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/snappy-1.1.0/config.h.in b/snappy-1.1.0/config.h.in new file mode 100644 index 0000000..8f912f6 --- /dev/null +++ b/snappy-1.1.0/config.h.in @@ -0,0 +1,128 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Define to 1 if the compiler supports __builtin_ctz and friends. */ +#undef HAVE_BUILTIN_CTZ + +/* Define to 1 if the compiler supports __builtin_expect. */ +#undef HAVE_BUILTIN_EXPECT + +/* Define to 1 if you have the <byteswap.h> header file. */ +#undef HAVE_BYTESWAP_H + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Use the gflags package for command-line parsing. */ +#undef HAVE_GFLAGS + +/* Defined when Google Test is available. */ +#undef HAVE_GTEST + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `fastlz' library (-lfastlz). */ +#undef HAVE_LIBFASTLZ + +/* Define to 1 if you have the `lzf' library (-llzf). */ +#undef HAVE_LIBLZF + +/* Define to 1 if you have the `lzo2' library (-llzo2). */ +#undef HAVE_LIBLZO2 + +/* Define to 1 if you have the `quicklz' library (-lquicklz). */ +#undef HAVE_LIBQUICKLZ + +/* Define to 1 if you have the `z' library (-lz). */ +#undef HAVE_LIBZ + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the <stddef.h> header file. */ +#undef HAVE_STDDEF_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/byteswap.h> header file. */ +#undef HAVE_SYS_BYTESWAP_H + +/* Define to 1 if you have the <sys/endian.h> header file. */ +#undef HAVE_SYS_ENDIAN_H + +/* Define to 1 if you have the <sys/mman.h> header file. */ +#undef HAVE_SYS_MMAN_H + +/* Define to 1 if you have the <sys/resource.h> header file. */ +#undef HAVE_SYS_RESOURCE_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/time.h> header file. */ +#undef HAVE_SYS_TIME_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 1 if you have the <windows.h> header file. */ +#undef HAVE_WINDOWS_H + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* 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 WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif diff --git a/snappy-1.1.0/config.sub b/snappy-1.1.0/config.sub new file mode 100755 index 0000000..c894da4 --- /dev/null +++ b/snappy-1.1.0/config.sub @@ -0,0 +1,1773 @@ +#! /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-02-10' + +# 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@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@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*) + 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 + ;; + 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/snappy-1.1.0/configure b/snappy-1.1.0/configure new file mode 100755 index 0000000..bab34d3 --- /dev/null +++ b/snappy-1.1.0/configure @@ -0,0 +1,18767 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.68 for snappy 1.1.0. +# +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 + +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" + 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 : + # 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 + export CONFIG_SHELL + 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+"$@"} +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@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do 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_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; } + + # 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 -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +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 + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# 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='snappy' +PACKAGE_TARNAME='snappy' +PACKAGE_VERSION='1.1.0' +PACKAGE_STRING='snappy 1.1.0' +PACKAGE_BUGREPORT='' +PACKAGE_URL='' + +# 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 +SNAPPY_LTVERSION +SNAPPY_PATCHLEVEL +SNAPPY_MINOR +SNAPPY_MAJOR +ac_cv_have_stddef_h +ac_cv_have_stdint_h +UNITTEST_LIBS +gflags_LIBS +gflags_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +HAVE_GTEST_FALSE +HAVE_GTEST_TRUE +HAVE_GTEST +GTEST_VERSION +GTEST_LIBS +GTEST_LDFLAGS +GTEST_CXXFLAGS +GTEST_CPPFLAGS +GTEST_CONFIG +CXXCPP +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +ac_ct_CXX +CXXFLAGS +CXX +LIBTOOL_DEPS +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 +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 +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +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_shared +enable_static +with_pic +enable_fast_install +enable_dependency_tracking +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_gtest +with_gflags +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +CXXCPP +GTEST_CONFIG +GTEST_CPPFLAGS +GTEST_CXXFLAGS +GTEST_LDFLAGS +GTEST_LIBS +GTEST_VERSION +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +gflags_CFLAGS +gflags_LIBS' + + +# 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 + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + 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 snappy 1.1.0 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/snappy] + --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 snappy 1.1.0:";; + 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] + --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-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-gtest Enable tests using the Google C++ Testing Framework. + (Default is enabled.) + +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). + --with-gflags use Google Flags package to enhance the unit test + [default=check] + +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 + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + GTEST_CONFIG + The exact path of Google Test's 'gtest-config' script. + GTEST_CPPFLAGS + C-like preprocessor flags for Google Test. + GTEST_CXXFLAGS + C++ compile flags for Google Test. + GTEST_LDFLAGS + Linker path and option flags for Google Test. + GTEST_LIBS Library linking flags for Google Test. + GTEST_VERSION + The version of Google Test available. + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + gflags_CFLAGS + C compiler flags for gflags, overriding pkg-config + gflags_LIBS linker flags for gflags, overriding pkg-config + +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 the package provider. +_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 +snappy configure 1.1.0 +generated by GNU Autoconf 2.68 + +Copyright (C) 2010 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 || + $as_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_cxx_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_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_cxx_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_cxx_try_compile + +# ac_fn_cxx_try_cpp LINENO +# ------------------------ +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_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_cxx_preproc_warn_flag$ac_cxx_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_cxx_try_cpp + +# ac_fn_cxx_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_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_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_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_cxx_try_link + +# ac_fn_cxx_try_run LINENO +# ------------------------ +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_cxx_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_cxx_try_run + +# ac_fn_cxx_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_cxx_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_cxx_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_cxx_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_cxx_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;} + ;; +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_cxx_check_header_mongrel + +# ac_fn_cxx_check_func LINENO FUNC VAR +# ------------------------------------ +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_cxx_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_cxx_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_cxx_check_func +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 snappy $as_me 1.1.0, which was +generated by GNU Autoconf 2.68. 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 + + + + +# These are flags passed to automake (though they look like gcc flags!) +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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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='snappy' + VERSION='1.1.0' + + +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 -' + + + + + + +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 + + + + + + + + + + + + + + +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 + + +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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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> +#include <sys/types.h> +#include <sys/stat.h> +/* 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 + +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 + + +{ $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" + { test -f "$ac_path_SED" && $as_test_x "$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" + { test -f "$ac_path_GREP" && $as_test_x "$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" + { test -f "$ac_path_EGREP" && $as_test_x "$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" + { test -f "$ac_path_FGREP" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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@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@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* + + +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@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: + + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + 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_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$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 +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +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_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$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_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + 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 + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# 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 + +{ $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_cxx_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_cxx_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_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if ${ac_cv_prog_cxx_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_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_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +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 + +depcc="$CXX" 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_CXX_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_CXX_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_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + + +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 + + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_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; } +if test -z "$CXXCPP"; then + if ${ac_cv_prog_CXXCPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_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_cxx_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_cxx_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_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_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_cxx_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_cxx_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 \"$CXXCPP\" 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 + +else + _lt_caught_CXX_error=yes +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +compiler_needs_object_CXX=no +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_direct_absolute_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +inherit_rpath_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$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. + + + + + + +# 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 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* + + + # 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 + compiler_CXX=$CC + 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-%%"` + + + 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_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' + else + lt_prog_compiler_no_builtin_flag_CXX= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + + +# 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 + + + + + + + + # 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 + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$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' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${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 + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + 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. + archive_cmds_CXX='$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 + { $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; } + ld_shlibs_CXX=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=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. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + file_list_spec_CXX='${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 + hardcode_direct_CXX=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_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + 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 + + export_dynamic_flag_spec_CXX='${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_CXX=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_CXX='-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__CXX+:} 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_cxx_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`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__CXX"; then + lt_cv_aix_libpath__CXX=`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__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX='$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_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$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__CXX+:} 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_cxx_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`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__CXX"; then + lt_cv_aix_libpath__CXX=`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__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='${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_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${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_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + archive_expsym_cmds_CXX="\$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 + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=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. + hardcode_libdir_flag_spec_CXX=' ' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=yes + file_list_spec_CXX='@' + # 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_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds_CXX='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, CXX)='true' + enable_shared_with_static_runtimes_CXX=yes + # Don't use ranlib + old_postinstall_cmds_CXX='chmod 644 $oldlib' + postlink_cmds_CXX='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, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$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... + archive_expsym_cmds_CXX='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 + ld_shlibs_CXX=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + + + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec_CXX='`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_CXX='' + fi + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX="$_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_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds_CXX="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_CXX="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}" + if test "$lt_cv_apple_cc_single_mod" != "yes"; then + archive_cmds_CXX="\$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}" + archive_expsym_cmds_CXX="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 + ld_shlibs_CXX=no + fi + + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + ld_shlibs_CXX=no + ;; + + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + + gnu*) + ;; + + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=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 + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$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 + archive_cmds_CXX='$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 + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_minus_L_CXX=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 + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$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*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$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 + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${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_CXX='$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_CXX='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++ + archive_cmds_CXX='$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. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$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 + archive_cmds_CXX='$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 + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + inherit_rpath_CXX=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. + archive_cmds_CXX='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' + archive_expsym_cmds_CXX='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"' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$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."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$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 + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [1-5].* | *pgcpp\ [1-5].*) + prelink_cmds_CXX='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`"' + old_archive_cmds_CXX='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' + archive_cmds_CXX='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' + archive_expsym_cmds_CXX='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 + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$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 + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${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++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$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 + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # 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 + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds_CXX='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 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='${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_CXX=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. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=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*) + ld_shlibs_CXX=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + hardcode_direct_absolute_CXX=yes + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + ld_shlibs_CXX=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. + archive_cmds_CXX='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' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + case $host in + osf3*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$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' + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + ;; + *) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$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' + archive_expsym_cmds_CXX='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' + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + ;; + esac + + hardcode_libdir_separator_CXX=: + + # 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 + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + archive_cmds_CXX='$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' + ;; + *) + archive_cmds_CXX='$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 + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # 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 + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='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' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=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?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=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. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$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. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='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. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='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 + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$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. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$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 + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } + test "$ld_shlibs_CXX" = no && can_build_shared=no + + GCC_CXX="$GXX" + LD_CXX="$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... + # Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_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 + +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 + # 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 "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${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 "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${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 "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +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. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +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 + postdeps_CXX='-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 + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + compiler_lib_search_dirs_CXX= +if test -n "${compiler_lib_search_path_CXX}"; then + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-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_CXX='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic_CXX='-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_CXX='-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 + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; + 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_prog_compiler_pic_CXX=-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_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + *) + lt_prog_compiler_pic_CXX='-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_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--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). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+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_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-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_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-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_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-qpic' + lt_prog_compiler_static_CXX='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-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_prog_compiler_pic_CXX='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -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_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } +lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } +if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -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_CXX=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ $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_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works_CXX=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_CXX=yes + fi + else + lt_cv_prog_compiler_static_works_CXX=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +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_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=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_CXX=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_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&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_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=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_CXX=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_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = 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; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='_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 + export_symbols_cmds_CXX='$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_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + export_symbols_cmds_CXX='$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_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs_CXX=no + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +with_gnu_ld_CXX=$with_gnu_ld + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX 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_CXX+:} 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_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds_CXX 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_CXX=no + else + lt_cv_archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$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_CXX" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +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}' + + ;; + 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_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_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_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_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || + test -n "$runpath_var_CXX" || + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct_CXX" != 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, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 +$as_echo "$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink || + test "$inherit_rpath_CXX" = 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 + + + + + + + + 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_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 + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +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 + if test $ac_cv_c_bigendian = unknown; then + # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +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 + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +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_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + +for ac_header in stdint.h stddef.h sys/mman.h sys/resource.h windows.h byteswap.h sys/byteswap.h sys/endian.h sys/time.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_cxx_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 + + +# Don't use AC_FUNC_MMAP, as it checks for mappings of already-mapped memory, +# which we don't need (and does not exist on Windows). +ac_fn_cxx_check_func "$LINENO" "mmap" "ac_cv_func_mmap" +if test "x$ac_cv_func_mmap" = xyes; then : + +fi + + + +# Check whether --enable-gtest was given. +if test "${enable_gtest+set}" = set; then : + enableval=$enable_gtest; +else + enable_gtest= +fi + + + + + + + +HAVE_GTEST="no" +if test "x${enable_gtest}" != "xno"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 'gtest-config'" >&5 +$as_echo_n "checking for 'gtest-config'... " >&6; } + if test "x${enable_gtest}" = "xyes"; then : + if test -x "${enable_gtest}/scripts/gtest-config"; then : + GTEST_CONFIG="${enable_gtest}/scripts/gtest-config" +else + GTEST_CONFIG="${enable_gtest}/bin/gtest-config" +fi + if test -x "${GTEST_CONFIG}"; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "Unable to locate either a built or installed Google Test. +The specific location '${enable_gtest}' was provided for a built or installed +Google Test, but no 'gtest-config' script could be found at this location." "$LINENO" 5 + +fi +else + # Extract the first word of "gtest-config", so it can be a program name with args. +set dummy gtest-config; 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_path_GTEST_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GTEST_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTEST_CONFIG="$GTEST_CONFIG" # Let the user override the test with a path. + ;; + *) + 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GTEST_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $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 + + ;; +esac +fi +GTEST_CONFIG=$ac_cv_path_GTEST_CONFIG +if test -n "$GTEST_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTEST_CONFIG" >&5 +$as_echo "$GTEST_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi + if test -x "${GTEST_CONFIG}"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${GTEST_CONFIG}" >&5 +$as_echo "${GTEST_CONFIG}" >&6; } + _gtest_min_version="--min-version=0" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Google Test" >&5 +$as_echo_n "checking for Google Test... " >&6; } + if ${GTEST_CONFIG} ${_gtest_min_version}; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_GTEST='yes' +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "x${HAVE_GTEST}" = "xyes"; then : + GTEST_CPPFLAGS=`${GTEST_CONFIG} --cppflags` + GTEST_CXXFLAGS=`${GTEST_CONFIG} --cxxflags` + GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags` + GTEST_LIBS=`${GTEST_CONFIG} --libs` + GTEST_VERSION=`${GTEST_CONFIG} --version` + +$as_echo "#define HAVE_GTEST 1" >>confdefs.h + +else + if test "x${enable_gtest}" = "xyes"; then : + as_fn_error $? "Google Test was enabled, but no viable version could be found." "$LINENO" 5 + +fi +fi +fi + + if test "x$HAVE_GTEST" = "xyes"; then + HAVE_GTEST_TRUE= + HAVE_GTEST_FALSE='#' +else + HAVE_GTEST_TRUE='#' + HAVE_GTEST_FALSE= +fi + +if test "x$HAVE_GTEST" = "xyes"; then : + true +else + true # Ignore; we can live without it. +fi + + + +# Check whether --with-gflags was given. +if test "${with_gflags+set}" = set; then : + withval=$with_gflags; +else + with_gflags=check +fi + + +if test "x$with_gflags" != "xno"; then + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; 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_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $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 + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; 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_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $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 + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + 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 + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; 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; } + PKG_CONFIG="" + fi +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gflags" >&5 +$as_echo_n "checking for gflags... " >&6; } + +if test -n "$gflags_CFLAGS"; then + pkg_cv_gflags_CFLAGS="$gflags_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgflags\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libgflags") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_gflags_CFLAGS=`$PKG_CONFIG --cflags "libgflags" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$gflags_LIBS"; then + pkg_cv_gflags_LIBS="$gflags_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgflags\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libgflags") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_gflags_LIBS=`$PKG_CONFIG --libs "libgflags" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + gflags_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libgflags" 2>&1` + else + gflags_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libgflags" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$gflags_PKG_ERRORS" >&5 + + if test "x$with_gflags" != "xcheck"; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "--with-gflags was given, but test for gflags failed +See \`config.log' for more details" "$LINENO" 5; } + fi +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "x$with_gflags" != "xcheck"; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "--with-gflags was given, but test for gflags failed +See \`config.log' for more details" "$LINENO" 5; } + fi +else + gflags_CFLAGS=$pkg_cv_gflags_CFLAGS + gflags_LIBS=$pkg_cv_gflags_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_GFLAGS 1" >>confdefs.h + +fi +fi + +# See if we have __builtin_expect. +# TODO: Use AC_CACHE. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler supports __builtin_expect" >&5 +$as_echo_n "checking if the compiler supports __builtin_expect... " >&6; } + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + return __builtin_expect(1, 1) ? 1 : 0 + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + + snappy_have_builtin_expect=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + + snappy_have_builtin_expect=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +if test x$snappy_have_builtin_expect = xyes ; then + +$as_echo "#define HAVE_BUILTIN_EXPECT 1" >>confdefs.h + +fi + +# See if we have working count-trailing-zeros intrinsics. +# TODO: Use AC_CACHE. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler supports __builtin_ctzll" >&5 +$as_echo_n "checking if the compiler supports __builtin_ctzll... " >&6; } + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + return (__builtin_ctzll(0x100000000LL) == 32) ? 1 : 0 + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + + snappy_have_builtin_ctz=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + + snappy_have_builtin_ctz=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +if test x$snappy_have_builtin_ctz = xyes ; then + +$as_echo "#define HAVE_BUILTIN_CTZ 1" >>confdefs.h + +fi + +# Other compression libraries; the unit test can use these for comparison +# if they are available. If they are not found, just ignore. +UNITTEST_LIBS="" + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlibVersion in -lz" >&5 +$as_echo_n "checking for zlibVersion in -lz... " >&6; } +if ${ac_cv_lib_z_zlibVersion+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $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 zlibVersion (); +int +main () +{ +return zlibVersion (); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + ac_cv_lib_z_zlibVersion=yes +else + ac_cv_lib_z_zlibVersion=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_z_zlibVersion" >&5 +$as_echo "$ac_cv_lib_z_zlibVersion" >&6; } +if test "x$ac_cv_lib_z_zlibVersion" = xyes; then : + + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBZ 1 +_ACEOF + + UNITTEST_LIBS="-lz $UNITTEST_LIBS" + +else + true + +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzo1x_1_15_compress in -llzo2" >&5 +$as_echo_n "checking for lzo1x_1_15_compress in -llzo2... " >&6; } +if ${ac_cv_lib_lzo2_lzo1x_1_15_compress+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-llzo2 $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 lzo1x_1_15_compress (); +int +main () +{ +return lzo1x_1_15_compress (); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + ac_cv_lib_lzo2_lzo1x_1_15_compress=yes +else + ac_cv_lib_lzo2_lzo1x_1_15_compress=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_lzo2_lzo1x_1_15_compress" >&5 +$as_echo "$ac_cv_lib_lzo2_lzo1x_1_15_compress" >&6; } +if test "x$ac_cv_lib_lzo2_lzo1x_1_15_compress" = xyes; then : + + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLZO2 1 +_ACEOF + + UNITTEST_LIBS="-llzo2 $UNITTEST_LIBS" + +else + true + +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzf_compress in -llzf" >&5 +$as_echo_n "checking for lzf_compress in -llzf... " >&6; } +if ${ac_cv_lib_lzf_lzf_compress+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-llzf $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 lzf_compress (); +int +main () +{ +return lzf_compress (); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + ac_cv_lib_lzf_lzf_compress=yes +else + ac_cv_lib_lzf_lzf_compress=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_lzf_lzf_compress" >&5 +$as_echo "$ac_cv_lib_lzf_lzf_compress" >&6; } +if test "x$ac_cv_lib_lzf_lzf_compress" = xyes; then : + + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLZF 1 +_ACEOF + + UNITTEST_LIBS="-llzf $UNITTEST_LIBS" + +else + true + +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fastlz_compress in -lfastlz" >&5 +$as_echo_n "checking for fastlz_compress in -lfastlz... " >&6; } +if ${ac_cv_lib_fastlz_fastlz_compress+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfastlz $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 fastlz_compress (); +int +main () +{ +return fastlz_compress (); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + ac_cv_lib_fastlz_fastlz_compress=yes +else + ac_cv_lib_fastlz_fastlz_compress=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_fastlz_fastlz_compress" >&5 +$as_echo "$ac_cv_lib_fastlz_fastlz_compress" >&6; } +if test "x$ac_cv_lib_fastlz_fastlz_compress" = xyes; then : + + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBFASTLZ 1 +_ACEOF + + UNITTEST_LIBS="-lfastlz $UNITTEST_LIBS" + +else + true + +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for qlz_compress in -lquicklz" >&5 +$as_echo_n "checking for qlz_compress in -lquicklz... " >&6; } +if ${ac_cv_lib_quicklz_qlz_compress+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lquicklz $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 qlz_compress (); +int +main () +{ +return qlz_compress (); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + ac_cv_lib_quicklz_qlz_compress=yes +else + ac_cv_lib_quicklz_qlz_compress=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_quicklz_qlz_compress" >&5 +$as_echo "$ac_cv_lib_quicklz_qlz_compress" >&6; } +if test "x$ac_cv_lib_quicklz_qlz_compress" = xyes; then : + + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBQUICKLZ 1 +_ACEOF + + UNITTEST_LIBS="-lquicklz $UNITTEST_LIBS" + +else + true + +fi + + + + +# These are used by snappy-stubs-public.h.in. +if test "$ac_cv_header_stdint_h" = "yes"; then + ac_cv_have_stdint_h=1 + +else + ac_cv_have_stdint_h=0 + +fi +if test "$ac_cv_header_stddef_h" = "yes"; then + ac_cv_have_stddef_h=1 + +else + ac_cv_have_stddef_h=0 + +fi + +# Export the version to snappy-stubs-public.h. +SNAPPY_MAJOR="1" +SNAPPY_MINOR="1" +SNAPPY_PATCHLEVEL="0" + + + + +SNAPPY_LTVERSION=2:4:1 + + +ac_config_headers="$ac_config_headers config.h" + +ac_config_files="$ac_config_files Makefile snappy-stubs-public.h" + +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 +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +if test -z "${HAVE_GTEST_TRUE}" && test -z "${HAVE_GTEST_FALSE}"; then + as_fn_error $? "conditional \"HAVE_GTEST\" 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 -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +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 + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# 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 snappy $as_me 1.1.0, which was +generated by GNU Autoconf 2.68. 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 the package provider." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +snappy config.status 1.1.0 +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 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"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $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 \ +compiler_lib_search_dirs \ +predep_objects \ +postdep_objects \ +predeps \ +postdeps \ +compiler_lib_search_path \ +LD_CXX \ +reload_flag_CXX \ +compiler_CXX \ +lt_prog_compiler_no_builtin_flag_CXX \ +lt_prog_compiler_pic_CXX \ +lt_prog_compiler_wl_CXX \ +lt_prog_compiler_static_CXX \ +lt_cv_prog_compiler_c_o_CXX \ +export_dynamic_flag_spec_CXX \ +whole_archive_flag_spec_CXX \ +compiler_needs_object_CXX \ +with_gnu_ld_CXX \ +allow_undefined_flag_CXX \ +no_undefined_flag_CXX \ +hardcode_libdir_flag_spec_CXX \ +hardcode_libdir_separator_CXX \ +exclude_expsyms_CXX \ +include_expsyms_CXX \ +file_list_spec_CXX \ +compiler_lib_search_dirs_CXX \ +predep_objects_CXX \ +postdep_objects_CXX \ +predeps_CXX \ +postdeps_CXX \ +compiler_lib_search_path_CXX; 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 \ +reload_cmds_CXX \ +old_archive_cmds_CXX \ +old_archive_from_new_cmds_CXX \ +old_archive_from_expsyms_cmds_CXX \ +archive_cmds_CXX \ +archive_expsym_cmds_CXX \ +module_cmds_CXX \ +module_expsym_cmds_CXX \ +export_symbols_cmds_CXX \ +prelink_cmds_CXX \ +postlink_cmds_CXX; 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 + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "snappy-stubs-public.h") CONFIG_FILES="$CONFIG_FILES snappy-stubs-public.h" ;; + + *) 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="CXX " + +# ### 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 + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects +postdep_objects=$lt_postdep_objects +predeps=$lt_predeps +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# ### 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" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_CXX + +# A language specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU compiler? +with_gcc=$GCC_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_CXX + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_CXX + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# 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_CXX + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# 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_CXX + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# 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_CXX + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_CXX + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_CXX + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_CXX + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_CXX + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects_CXX +postdep_objects=$lt_postdep_objects_CXX +predeps=$lt_predeps_CXX +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# ### END LIBTOOL TAG CONFIG: CXX +_LT_EOF + + ;; + + 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/snappy-1.1.0/configure.ac b/snappy-1.1.0/configure.ac new file mode 100644 index 0000000..e06f0be --- /dev/null +++ b/snappy-1.1.0/configure.ac @@ -0,0 +1,126 @@ +m4_define([snappy_major], [1]) +m4_define([snappy_minor], [1]) +m4_define([snappy_patchlevel], [0]) + +# Libtool shared library interface versions (current:revision:age) +# Update this value for every release! (A:B:C will map to foo.so.(A-C).C.B) +# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html +m4_define([snappy_ltversion], [2:4:1]) + +AC_INIT([snappy], [snappy_major.snappy_minor.snappy_patchlevel]) +AC_CONFIG_MACRO_DIR([m4]) + +# These are flags passed to automake (though they look like gcc flags!) +AM_INIT_AUTOMAKE([-Wall]) + +LT_INIT +AC_SUBST([LIBTOOL_DEPS]) +AC_PROG_CXX +AC_LANG([C++]) +AC_C_BIGENDIAN +AC_CHECK_HEADERS([stdint.h stddef.h sys/mman.h sys/resource.h windows.h byteswap.h sys/byteswap.h sys/endian.h sys/time.h]) + +# Don't use AC_FUNC_MMAP, as it checks for mappings of already-mapped memory, +# which we don't need (and does not exist on Windows). +AC_CHECK_FUNC([mmap]) + +GTEST_LIB_CHECK([], [true], [true # Ignore; we can live without it.]) + +AC_ARG_WITH([gflags], + [AS_HELP_STRING( + [--with-gflags], + [use Google Flags package to enhance the unit test @<:@default=check@:>@])], + [], + [with_gflags=check]) + +if test "x$with_gflags" != "xno"; then + PKG_CHECK_MODULES( + [gflags], + [libgflags], + [AC_DEFINE([HAVE_GFLAGS], [1], [Use the gflags package for command-line parsing.])], + [if test "x$with_gflags" != "xcheck"; then + AC_MSG_FAILURE([--with-gflags was given, but test for gflags failed]) + fi]) +fi + +# See if we have __builtin_expect. +# TODO: Use AC_CACHE. +AC_MSG_CHECKING([if the compiler supports __builtin_expect]) + +AC_TRY_COMPILE(, [ + return __builtin_expect(1, 1) ? 1 : 0 +], [ + snappy_have_builtin_expect=yes + AC_MSG_RESULT([yes]) +], [ + snappy_have_builtin_expect=no + AC_MSG_RESULT([no]) +]) +if test x$snappy_have_builtin_expect = xyes ; then + AC_DEFINE([HAVE_BUILTIN_EXPECT], [1], [Define to 1 if the compiler supports __builtin_expect.]) +fi + +# See if we have working count-trailing-zeros intrinsics. +# TODO: Use AC_CACHE. +AC_MSG_CHECKING([if the compiler supports __builtin_ctzll]) + +AC_TRY_COMPILE(, [ + return (__builtin_ctzll(0x100000000LL) == 32) ? 1 : 0 +], [ + snappy_have_builtin_ctz=yes + AC_MSG_RESULT([yes]) +], [ + snappy_have_builtin_ctz=no + AC_MSG_RESULT([no]) +]) +if test x$snappy_have_builtin_ctz = xyes ; then + AC_DEFINE([HAVE_BUILTIN_CTZ], [1], [Define to 1 if the compiler supports __builtin_ctz and friends.]) +fi + +# Other compression libraries; the unit test can use these for comparison +# if they are available. If they are not found, just ignore. +UNITTEST_LIBS="" +AC_DEFUN([CHECK_EXT_COMPRESSION_LIB], [ + AH_CHECK_LIB([$1]) + AC_CHECK_LIB( + [$1], + [$2], + [ + AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_LIB$1)) + UNITTEST_LIBS="-l$1 $UNITTEST_LIBS" + ], + [true] + ) +]) +CHECK_EXT_COMPRESSION_LIB([z], [zlibVersion]) +CHECK_EXT_COMPRESSION_LIB([lzo2], [lzo1x_1_15_compress]) +CHECK_EXT_COMPRESSION_LIB([lzf], [lzf_compress]) +CHECK_EXT_COMPRESSION_LIB([fastlz], [fastlz_compress]) +CHECK_EXT_COMPRESSION_LIB([quicklz], [qlz_compress]) +AC_SUBST([UNITTEST_LIBS]) + +# These are used by snappy-stubs-public.h.in. +if test "$ac_cv_header_stdint_h" = "yes"; then + AC_SUBST([ac_cv_have_stdint_h], [1]) +else + AC_SUBST([ac_cv_have_stdint_h], [0]) +fi +if test "$ac_cv_header_stddef_h" = "yes"; then + AC_SUBST([ac_cv_have_stddef_h], [1]) +else + AC_SUBST([ac_cv_have_stddef_h], [0]) +fi + +# Export the version to snappy-stubs-public.h. +SNAPPY_MAJOR="snappy_major" +SNAPPY_MINOR="snappy_minor" +SNAPPY_PATCHLEVEL="snappy_patchlevel" + +AC_SUBST([SNAPPY_MAJOR]) +AC_SUBST([SNAPPY_MINOR]) +AC_SUBST([SNAPPY_PATCHLEVEL]) +AC_SUBST([SNAPPY_LTVERSION], snappy_ltversion) + +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_FILES([Makefile snappy-stubs-public.h]) +AC_OUTPUT diff --git a/snappy-1.1.0/depcomp b/snappy-1.1.0/depcomp new file mode 100755 index 0000000..bd0ac08 --- /dev/null +++ b/snappy-1.1.0/depcomp @@ -0,0 +1,688 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2011-12-04.11; # UTC + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011 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@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@gnu.org>. +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +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 + +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 ' ' ' +' < "$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 ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> "$depfile" + echo >> "$depfile" + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$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" + ;; + +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" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -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 understands `-MD -MF file'. However on + # icc -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 ... \ + # ... + + "$@" -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 "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$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" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -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/\(.*\)/ \1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/ / + 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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$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 ' ' ' +' | \ +## 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:: \1 \\:p' >> "$depfile" + echo " " >> "$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/snappy-1.1.0/format_description.txt b/snappy-1.1.0/format_description.txt new file mode 100644 index 0000000..20db66c --- /dev/null +++ b/snappy-1.1.0/format_description.txt @@ -0,0 +1,110 @@ +Snappy compressed format description +Last revised: 2011-10-05 + + +This is not a formal specification, but should suffice to explain most +relevant parts of how the Snappy format works. It is originally based on +text by Zeev Tarantov. + +Snappy is a LZ77-type compressor with a fixed, byte-oriented encoding. +There is no entropy encoder backend nor framing layer -- the latter is +assumed to be handled by other parts of the system. + +This document only describes the format, not how the Snappy compressor nor +decompressor actually works. The correctness of the decompressor should not +depend on implementation details of the compressor, and vice versa. + + +1. Preamble + +The stream starts with the uncompressed length (up to a maximum of 2^32 - 1), +stored as a little-endian varint. Varints consist of a series of bytes, +where the lower 7 bits are data and the upper bit is set iff there are +more bytes to be read. In other words, an uncompressed length of 64 would +be stored as 0x40, and an uncompressed length of 2097150 (0x1FFFFE) +would be stored as 0xFE 0xFF 0x7F. + + +2. The compressed stream itself + +There are two types of elements in a Snappy stream: Literals and +copies (backreferences). There is no restriction on the order of elements, +except that the stream naturally cannot start with a copy. (Having +two literals in a row is never optimal from a compression point of +view, but nevertheless fully permitted.) Each element starts with a tag byte, +and the lower two bits of this tag byte signal what type of element will +follow: + + 00: Literal + 01: Copy with 1-byte offset + 10: Copy with 2-byte offset + 11: Copy with 4-byte offset + +The interpretation of the upper six bits are element-dependent. + + +2.1. Literals (00) + +Literals are uncompressed data stored directly in the byte stream. +The literal length is stored differently depending on the length +of the literal: + + - For literals up to and including 60 bytes in length, the upper + six bits of the tag byte contain (len-1). The literal follows + immediately thereafter in the bytestream. + - For longer literals, the (len-1) value is stored after the tag byte, + little-endian. The upper six bits of the tag byte describe how + many bytes are used for the length; 60, 61, 62 or 63 for + 1-4 bytes, respectively. The literal itself follows after the + length. + + +2.2. Copies + +Copies are references back into previous decompressed data, telling +the decompressor to reuse data it has previously decoded. +They encode two values: The _offset_, saying how many bytes back +from the current position to read, and the _length_, how many bytes +to copy. Offsets of zero can be encoded, but are not legal; +similarly, it is possible to encode backreferences that would +go past the end of the block (offset > current decompressed position), +which is also nonsensical and thus not allowed. + +As in most LZ77-based compressors, the length can be larger than the offset, +yielding a form of run-length encoding (RLE). For instance, +"xababab" could be encoded as + + <literal: "xab"> <copy: offset=2 length=4> + +Note that since the current Snappy compressor works in 32 kB +blocks and does not do matching across blocks, it will never produce +a bitstream with offsets larger than about 32768. However, the +decompressor should not rely on this, as it may change in the future. + +There are several different kinds of copy elements, depending on +the amount of bytes to be copied (length), and how far back the +data to be copied is (offset). + + +2.2.1. Copy with 1-byte offset (01) + +These elements can encode lengths between [4..11] bytes and offsets +between [0..2047] bytes. (len-4) occupies three bits and is stored +in bits [2..4] of the tag byte. The offset occupies 11 bits, of which the +upper three are stored in the upper three bits ([5..7]) of the tag byte, +and the lower eight are stored in a byte following the tag byte. + + +2.2.2. Copy with 2-byte offset (10) + +These elements can encode lengths between [1..64] and offsets from +[0..65535]. (len-1) occupies six bits and is stored in the upper +six bits ([2..7]) of the tag byte. The offset is stored as a +little-endian 16-bit integer in the two bytes following the tag byte. + + +2.2.3. Copy with 4-byte offset (11) + +These are like the copies with 2-byte offsets (see previous subsection), +except that the offset is stored as a 32-bit integer instead of a +16-bit integer (and thus will occupy four bytes). diff --git a/snappy-1.1.0/framing_format.txt b/snappy-1.1.0/framing_format.txt new file mode 100644 index 0000000..32b1e59 --- /dev/null +++ b/snappy-1.1.0/framing_format.txt @@ -0,0 +1,124 @@ +Snappy framing format description +Last revised: 2013-01-05 + +This format decribes a framing format for Snappy, allowing compressing to +files or streams that can then more easily be decompressed without having +to hold the entire stream in memory. It also provides data checksums to +help verify integrity. It does not provide metadata checksums, so it does +not protect against e.g. all forms of truncations. + +Implementation of the framing format is optional for Snappy compressors and +decompressor; it is not part of the Snappy core specification. + + +1. General structure + +The file consists solely of chunks, lying back-to-back with no padding +in between. Each chunk consists first a single byte of chunk identifier, +then a three-byte little-endian length of the chunk in bytes (from 0 to +16777215, inclusive), and then the data if any. The four bytes of chunk +header is not counted in the data length. + +The different chunk types are listed below. The first chunk must always +be the stream identifier chunk (see section 4.1, below). The stream +ends when the file ends -- there is no explicit end-of-file marker. + + +2. File type identification + +The following identifiers for this format are recommended where appropriate. +However, note that none have been registered officially, so this is only to +be taken as a guideline. We use "Snappy framed" to distinguish between this +format and raw Snappy data. + + File extension: .sz + MIME type: application/x-snappy-framed + HTTP Content-Encoding: x-snappy-framed + + +3. Checksum format + +Some chunks have data protected by a checksum (the ones that do will say so +explicitly). The checksums are always masked CRC-32Cs. + +A description of CRC-32C can be found in RFC 3720, section 12.1, with +examples in section B.4. + +Checksums are not stored directly, but masked, as checksumming data and +then its own checksum can be problematic. The masking is the same as used +in Apache Hadoop: Rotate the checksum by 15 bits, then add the constant +0xa282ead8 (using wraparound as normal for unsigned integers). This is +equivalent to the following C code: + + uint32_t mask_checksum(uint32_t x) { + return ((x >> 15) | (x << 17)) + 0xa282ead8; + } + +Note that the masking is reversible. + +The checksum is always stored as a four bytes long integer, in little-endian. + + +4. Chunk types + +The currently supported chunk types are described below. The list may +be extended in the future. + + +4.1. Stream identifier (chunk type 0xff) + +The stream identifier is always the first element in the stream. +It is exactly six bytes long and contains "sNaPpY" in ASCII. This means that +a valid Snappy framed stream always starts with the bytes + + 0xff 0x06 0x00 0x00 0x73 0x4e 0x61 0x50 0x70 0x59 + +The stream identifier chunk can come multiple times in the stream besides +the first; if such a chunk shows up, it should simply be ignored, assuming +it has the right length and contents. This allows for easy concatenation of +compressed files without the need for re-framing. + + +4.2. Compressed data (chunk type 0x00) + +Compressed data chunks contain a normal Snappy compressed bitstream; +see the compressed format specification. The compressed data is preceded by +the CRC-32C (see section 3) of the _uncompressed_ data. + +Note that the data portion of the chunk, i.e., the compressed contents, +can be at most 16777211 bytes (2^24 - 1, minus the checksum). +However, we place an additional restriction that the uncompressed data +in a chunk must be no longer than 65536 bytes. This allows consumers to +easily use small fixed-size buffers. + + +4.3. Uncompressed data (chunk type 0x01) + +Uncompressed data chunks allow a compressor to send uncompressed, +raw data; this is useful if, for instance, uncompressible or +near-incompressible data is detected, and faster decompression is desired. + +As in the compressed chunks, the data is preceded by its own masked +CRC-32C (see section 3). + +An uncompressed data chunk, like compressed data chunks, should contain +no more than 65536 data bytes, so the maximum legal chunk length with the +checksum is 65540. + + +4.4. Reserved unskippable chunks (chunk types 0x02-0x7f) + +These are reserved for future expansion. A decoder that sees such a chunk +should immediately return an error, as it must assume it cannot decode the +stream correctly. + +Future versions of this specification may define meanings for these chunks. + + +4.5. Reserved skippable chunks (chunk types 0x80-0xfe) + +These are also reserved for future expansion, but unlike the chunks +described in 4.4, a decoder seeing these must skip them and continue +decoding. + +Future versions of this specification may define meanings for these chunks. diff --git a/snappy-1.1.0/install-sh b/snappy-1.1.0/install-sh new file mode 100755 index 0000000..a9244eb --- /dev/null +++ b/snappy-1.1.0/install-sh @@ -0,0 +1,527 @@ +#!/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/snappy-1.1.0/ltmain.sh b/snappy-1.1.0/ltmain.sh new file mode 100644 index 0000000..c2852d8 --- /dev/null +++ b/snappy-1.1.0/ltmain.sh @@ -0,0 +1,9661 @@ + +# libtool (GNU libtool) 2.4.2 +# Written by Gordon Matzigkeit <gord@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-1ubuntu1 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to <bug-libtool@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-1ubuntu1" +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/snappy-1.1.0/m4/gtest.m4 b/snappy-1.1.0/m4/gtest.m4 new file mode 100644 index 0000000..98e61f9 --- /dev/null +++ b/snappy-1.1.0/m4/gtest.m4 @@ -0,0 +1,74 @@ +dnl GTEST_LIB_CHECK([minimum version [, +dnl action if found [,action if not found]]]) +dnl +dnl Check for the presence of the Google Test library, optionally at a minimum +dnl version, and indicate a viable version with the HAVE_GTEST flag. It defines +dnl standard variables for substitution including GTEST_CPPFLAGS, +dnl GTEST_CXXFLAGS, GTEST_LDFLAGS, and GTEST_LIBS. It also defines +dnl GTEST_VERSION as the version of Google Test found. Finally, it provides +dnl optional custom action slots in the event GTEST is found or not. +AC_DEFUN([GTEST_LIB_CHECK], +[ +dnl Provide a flag to enable or disable Google Test usage. +AC_ARG_ENABLE([gtest], + [AS_HELP_STRING([--enable-gtest], + [Enable tests using the Google C++ Testing Framework. + (Default is enabled.)])], + [], + [enable_gtest=]) +AC_ARG_VAR([GTEST_CONFIG], + [The exact path of Google Test's 'gtest-config' script.]) +AC_ARG_VAR([GTEST_CPPFLAGS], + [C-like preprocessor flags for Google Test.]) +AC_ARG_VAR([GTEST_CXXFLAGS], + [C++ compile flags for Google Test.]) +AC_ARG_VAR([GTEST_LDFLAGS], + [Linker path and option flags for Google Test.]) +AC_ARG_VAR([GTEST_LIBS], + [Library linking flags for Google Test.]) +AC_ARG_VAR([GTEST_VERSION], + [The version of Google Test available.]) +HAVE_GTEST="no" +AS_IF([test "x${enable_gtest}" != "xno"], + [AC_MSG_CHECKING([for 'gtest-config']) + AS_IF([test "x${enable_gtest}" = "xyes"], + [AS_IF([test -x "${enable_gtest}/scripts/gtest-config"], + [GTEST_CONFIG="${enable_gtest}/scripts/gtest-config"], + [GTEST_CONFIG="${enable_gtest}/bin/gtest-config"]) + AS_IF([test -x "${GTEST_CONFIG}"], [], + [AC_MSG_RESULT([no]) + AC_MSG_ERROR([dnl +Unable to locate either a built or installed Google Test. +The specific location '${enable_gtest}' was provided for a built or installed +Google Test, but no 'gtest-config' script could be found at this location.]) + ])], + [AC_PATH_PROG([GTEST_CONFIG], [gtest-config])]) + AS_IF([test -x "${GTEST_CONFIG}"], + [AC_MSG_RESULT([${GTEST_CONFIG}]) + m4_ifval([$1], + [_gtest_min_version="--min-version=$1" + AC_MSG_CHECKING([for Google Test at least version >= $1])], + [_gtest_min_version="--min-version=0" + AC_MSG_CHECKING([for Google Test])]) + AS_IF([${GTEST_CONFIG} ${_gtest_min_version}], + [AC_MSG_RESULT([yes]) + HAVE_GTEST='yes'], + [AC_MSG_RESULT([no])])], + [AC_MSG_RESULT([no])]) + AS_IF([test "x${HAVE_GTEST}" = "xyes"], + [GTEST_CPPFLAGS=`${GTEST_CONFIG} --cppflags` + GTEST_CXXFLAGS=`${GTEST_CONFIG} --cxxflags` + GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags` + GTEST_LIBS=`${GTEST_CONFIG} --libs` + GTEST_VERSION=`${GTEST_CONFIG} --version` + AC_DEFINE([HAVE_GTEST],[1],[Defined when Google Test is available.])], + [AS_IF([test "x${enable_gtest}" = "xyes"], + [AC_MSG_ERROR([dnl +Google Test was enabled, but no viable version could be found.]) + ])])]) +AC_SUBST([HAVE_GTEST]) +AM_CONDITIONAL([HAVE_GTEST],[test "x$HAVE_GTEST" = "xyes"]) +AS_IF([test "x$HAVE_GTEST" = "xyes"], + [m4_ifval([$2], [$2])], + [m4_ifval([$3], [$3])]) +]) diff --git a/snappy-1.1.0/missing b/snappy-1.1.0/missing new file mode 100755 index 0000000..86a8fc3 --- /dev/null +++ b/snappy-1.1.0/missing @@ -0,0 +1,331 @@ +#! /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@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@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/snappy-1.1.0/snappy-c.cc b/snappy-1.1.0/snappy-c.cc new file mode 100644 index 0000000..473a0b0 --- /dev/null +++ b/snappy-1.1.0/snappy-c.cc @@ -0,0 +1,90 @@ +// Copyright 2011 Martin Gieseking <martin.gieseking@uos.de>. +// +// 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 Google Inc. 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 +// 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. + +#include "snappy.h" +#include "snappy-c.h" + +extern "C" { + +snappy_status snappy_compress(const char* input, + size_t input_length, + char* compressed, + size_t *compressed_length) { + if (*compressed_length < snappy_max_compressed_length(input_length)) { + return SNAPPY_BUFFER_TOO_SMALL; + } + snappy::RawCompress(input, input_length, compressed, compressed_length); + return SNAPPY_OK; +} + +snappy_status snappy_uncompress(const char* compressed, + size_t compressed_length, + char* uncompressed, + size_t* uncompressed_length) { + size_t real_uncompressed_length; + if (!snappy::GetUncompressedLength(compressed, + compressed_length, + &real_uncompressed_length)) { + return SNAPPY_INVALID_INPUT; + } + if (*uncompressed_length < real_uncompressed_length) { + return SNAPPY_BUFFER_TOO_SMALL; + } + if (!snappy::RawUncompress(compressed, compressed_length, uncompressed)) { + return SNAPPY_INVALID_INPUT; + } + *uncompressed_length = real_uncompressed_length; + return SNAPPY_OK; +} + +size_t snappy_max_compressed_length(size_t source_length) { + return snappy::MaxCompressedLength(source_length); +} + +snappy_status snappy_uncompressed_length(const char *compressed, + size_t compressed_length, + size_t *result) { + if (snappy::GetUncompressedLength(compressed, + compressed_length, + result)) { + return SNAPPY_OK; + } else { + return SNAPPY_INVALID_INPUT; + } +} + +snappy_status snappy_validate_compressed_buffer(const char *compressed, + size_t compressed_length) { + if (snappy::IsValidCompressedBuffer(compressed, compressed_length)) { + return SNAPPY_OK; + } else { + return SNAPPY_INVALID_INPUT; + } +} + +} // extern "C" diff --git a/snappy-1.1.0/snappy-c.h b/snappy-1.1.0/snappy-c.h new file mode 100644 index 0000000..c6c2a86 --- /dev/null +++ b/snappy-1.1.0/snappy-c.h @@ -0,0 +1,138 @@ +/* + * Copyright 2011 Martin Gieseking <martin.gieseking@uos.de>. + * + * 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 Google Inc. 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 + * 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. + * + * Plain C interface (a wrapper around the C++ implementation). + */ + +#ifndef UTIL_SNAPPY_OPENSOURCE_SNAPPY_C_H_ +#define UTIL_SNAPPY_OPENSOURCE_SNAPPY_C_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stddef.h> + +/* + * Return values; see the documentation for each function to know + * what each can return. + */ +typedef enum { + SNAPPY_OK = 0, + SNAPPY_INVALID_INPUT = 1, + SNAPPY_BUFFER_TOO_SMALL = 2 +} snappy_status; + +/* + * Takes the data stored in "input[0..input_length-1]" and stores + * it in the array pointed to by "compressed". + * + * <compressed_length> signals the space available in "compressed". + * If it is not at least equal to "snappy_max_compressed_length(input_length)", + * SNAPPY_BUFFER_TOO_SMALL is returned. After successful compression, + * <compressed_length> contains the true length of the compressed output, + * and SNAPPY_OK is returned. + * + * Example: + * size_t output_length = snappy_max_compressed_length(input_length); + * char* output = (char*)malloc(output_length); + * if (snappy_compress(input, input_length, output, &output_length) + * == SNAPPY_OK) { + * ... Process(output, output_length) ... + * } + * free(output); + */ +snappy_status snappy_compress(const char* input, + size_t input_length, + char* compressed, + size_t* compressed_length); + +/* + * Given data in "compressed[0..compressed_length-1]" generated by + * calling the snappy_compress routine, this routine stores + * the uncompressed data to + * uncompressed[0..uncompressed_length-1]. + * Returns failure (a value not equal to SNAPPY_OK) if the message + * is corrupted and could not be decrypted. + * + * <uncompressed_length> signals the space available in "uncompressed". + * If it is not at least equal to the value returned by + * snappy_uncompressed_length for this stream, SNAPPY_BUFFER_TOO_SMALL + * is returned. After successful decompression, <uncompressed_length> + * contains the true length of the decompressed output. + * + * Example: + * size_t output_length; + * if (snappy_uncompressed_length(input, input_length, &output_length) + * != SNAPPY_OK) { + * ... fail ... + * } + * char* output = (char*)malloc(output_length); + * if (snappy_uncompress(input, input_length, output, &output_length) + * == SNAPPY_OK) { + * ... Process(output, output_length) ... + * } + * free(output); + */ +snappy_status snappy_uncompress(const char* compressed, + size_t compressed_length, + char* uncompressed, + size_t* uncompressed_length); + +/* + * Returns the maximal size of the compressed representation of + * input data that is "source_length" bytes in length. + */ +size_t snappy_max_compressed_length(size_t source_length); + +/* + * REQUIRES: "compressed[]" was produced by snappy_compress() + * Returns SNAPPY_OK and stores the length of the uncompressed data in + * *result normally. Returns SNAPPY_INVALID_INPUT on parsing error. + * This operation takes O(1) time. + */ +snappy_status snappy_uncompressed_length(const char* compressed, + size_t compressed_length, + size_t* result); + +/* + * Check if the contents of "compressed[]" can be uncompressed successfully. + * Does not return the uncompressed data; if so, returns SNAPPY_OK, + * or if not, returns SNAPPY_INVALID_INPUT. + * Takes time proportional to compressed_length, but is usually at least a + * factor of four faster than actual decompression. + */ +snappy_status snappy_validate_compressed_buffer(const char* compressed, + size_t compressed_length); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif /* UTIL_SNAPPY_OPENSOURCE_SNAPPY_C_H_ */ diff --git a/snappy-1.1.0/snappy-internal.h b/snappy-1.1.0/snappy-internal.h new file mode 100644 index 0000000..c99d331 --- /dev/null +++ b/snappy-1.1.0/snappy-internal.h @@ -0,0 +1,150 @@ +// Copyright 2008 Google Inc. All Rights Reserved. +// +// 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 Google Inc. 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 +// 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. +// +// Internals shared between the Snappy implementation and its unittest. + +#ifndef UTIL_SNAPPY_SNAPPY_INTERNAL_H_ +#define UTIL_SNAPPY_SNAPPY_INTERNAL_H_ + +#include "snappy-stubs-internal.h" + +namespace snappy { +namespace internal { + +class WorkingMemory { + public: + WorkingMemory() : large_table_(NULL) { } + ~WorkingMemory() { delete[] large_table_; } + + // Allocates and clears a hash table using memory in "*this", + // stores the number of buckets in "*table_size" and returns a pointer to + // the base of the hash table. + uint16* GetHashTable(size_t input_size, int* table_size); + + private: + uint16 small_table_[1<<10]; // 2KB + uint16* large_table_; // Allocated only when needed + + DISALLOW_COPY_AND_ASSIGN(WorkingMemory); +}; + +// Flat array compression that does not emit the "uncompressed length" +// prefix. Compresses "input" string to the "*op" buffer. +// +// REQUIRES: "input_length <= kBlockSize" +// REQUIRES: "op" points to an array of memory that is at least +// "MaxCompressedLength(input_length)" in size. +// REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. +// REQUIRES: "table_size" is a power of two +// +// Returns an "end" pointer into "op" buffer. +// "end - op" is the compressed size of "input". +char* CompressFragment(const char* input, + size_t input_length, + char* op, + uint16* table, + const int table_size); + +// Return the largest n such that +// +// s1[0,n-1] == s2[0,n-1] +// and n <= (s2_limit - s2). +// +// Does not read *s2_limit or beyond. +// Does not read *(s1 + (s2_limit - s2)) or beyond. +// Requires that s2_limit >= s2. +// +// Separate implementation for x86_64, for speed. Uses the fact that +// x86_64 is little endian. +#if defined(ARCH_K8) +static inline int FindMatchLength(const char* s1, + const char* s2, + const char* s2_limit) { + assert(s2_limit >= s2); + int matched = 0; + + // Find out how long the match is. We loop over the data 64 bits at a + // time until we find a 64-bit block that doesn't match; then we find + // the first non-matching bit and use that to calculate the total + // length of the match. + while (PREDICT_TRUE(s2 <= s2_limit - 8)) { + if (PREDICT_FALSE(UNALIGNED_LOAD64(s2) == UNALIGNED_LOAD64(s1 + matched))) { + s2 += 8; + matched += 8; + } else { + // On current (mid-2008) Opteron models there is a 3% more + // efficient code sequence to find the first non-matching byte. + // However, what follows is ~10% better on Intel Core 2 and newer, + // and we expect AMD's bsf instruction to improve. + uint64 x = UNALIGNED_LOAD64(s2) ^ UNALIGNED_LOAD64(s1 + matched); + int matching_bits = Bits::FindLSBSetNonZero64(x); + matched += matching_bits >> 3; + return matched; + } + } + while (PREDICT_TRUE(s2 < s2_limit)) { + if (PREDICT_TRUE(s1[matched] == *s2)) { + ++s2; + ++matched; + } else { + return matched; + } + } + return matched; +} +#else +static inline int FindMatchLength(const char* s1, + const char* s2, + const char* s2_limit) { + // Implementation based on the x86-64 version, above. + assert(s2_limit >= s2); + int matched = 0; + + while (s2 <= s2_limit - 4 && + UNALIGNED_LOAD32(s2) == UNALIGNED_LOAD32(s1 + matched)) { + s2 += 4; + matched += 4; + } + if (LittleEndian::IsLittleEndian() && s2 <= s2_limit - 4) { + uint32 x = UNALIGNED_LOAD32(s2) ^ UNALIGNED_LOAD32(s1 + matched); + int matching_bits = Bits::FindLSBSetNonZero(x); + matched += matching_bits >> 3; + } else { + while ((s2 < s2_limit) && (s1[matched] == *s2)) { + ++s2; + ++matched; + } + } + return matched; +} +#endif + +} // end namespace internal +} // end namespace snappy + +#endif // UTIL_SNAPPY_SNAPPY_INTERNAL_H_ diff --git a/snappy-1.1.0/snappy-sinksource.cc b/snappy-1.1.0/snappy-sinksource.cc new file mode 100644 index 0000000..5844552 --- /dev/null +++ b/snappy-1.1.0/snappy-sinksource.cc @@ -0,0 +1,71 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// +// 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 Google Inc. 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 +// 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. + +#include <string.h> + +#include "snappy-sinksource.h" + +namespace snappy { + +Source::~Source() { } + +Sink::~Sink() { } + +char* Sink::GetAppendBuffer(size_t length, char* scratch) { + return scratch; +} + +ByteArraySource::~ByteArraySource() { } + +size_t ByteArraySource::Available() const { return left_; } + +const char* ByteArraySource::Peek(size_t* len) { + *len = left_; + return ptr_; +} + +void ByteArraySource::Skip(size_t n) { + left_ -= n; + ptr_ += n; +} + +UncheckedByteArraySink::~UncheckedByteArraySink() { } + +void UncheckedByteArraySink::Append(const char* data, size_t n) { + // Do no copying if the caller filled in the result of GetAppendBuffer() + if (data != dest_) { + memcpy(dest_, data, n); + } + dest_ += n; +} + +char* UncheckedByteArraySink::GetAppendBuffer(size_t len, char* scratch) { + return dest_; +} + +} diff --git a/snappy-1.1.0/snappy-sinksource.h b/snappy-1.1.0/snappy-sinksource.h new file mode 100644 index 0000000..faabfa1 --- /dev/null +++ b/snappy-1.1.0/snappy-sinksource.h @@ -0,0 +1,137 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// +// 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 Google Inc. 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 +// 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. + +#ifndef UTIL_SNAPPY_SNAPPY_SINKSOURCE_H_ +#define UTIL_SNAPPY_SNAPPY_SINKSOURCE_H_ + +#include <stddef.h> + + +namespace snappy { + +// A Sink is an interface that consumes a sequence of bytes. +class Sink { + public: + Sink() { } + virtual ~Sink(); + + // Append "bytes[0,n-1]" to this. + virtual void Append(const char* bytes, size_t n) = 0; + + // Returns a writable buffer of the specified length for appending. + // May return a pointer to the caller-owned scratch buffer which + // must have at least the indicated length. The returned buffer is + // only valid until the next operation on this Sink. + // + // After writing at most "length" bytes, call Append() with the + // pointer returned from this function and the number of bytes + // written. Many Append() implementations will avoid copying + // bytes if this function returned an internal buffer. + // + // If a non-scratch buffer is returned, the caller may only pass a + // prefix of it to Append(). That is, it is not correct to pass an + // interior pointer of the returned array to Append(). + // + // The default implementation always returns the scratch buffer. + virtual char* GetAppendBuffer(size_t length, char* scratch); + + + private: + // No copying + Sink(const Sink&); + void operator=(const Sink&); +}; + +// A Source is an interface that yields a sequence of bytes +class Source { + public: + Source() { } + virtual ~Source(); + + // Return the number of bytes left to read from the source + virtual size_t Available() const = 0; + + // Peek at the next flat region of the source. Does not reposition + // the source. The returned region is empty iff Available()==0. + // + // Returns a pointer to the beginning of the region and store its + // length in *len. + // + // The returned region is valid until the next call to Skip() or + // until this object is destroyed, whichever occurs first. + // + // The returned region may be larger than Available() (for example + // if this ByteSource is a view on a substring of a larger source). + // The caller is responsible for ensuring that it only reads the + // Available() bytes. + virtual const char* Peek(size_t* len) = 0; + + // Skip the next n bytes. Invalidates any buffer returned by + // a previous call to Peek(). + // REQUIRES: Available() >= n + virtual void Skip(size_t n) = 0; + + private: + // No copying + Source(const Source&); + void operator=(const Source&); +}; + +// A Source implementation that yields the contents of a flat array +class ByteArraySource : public Source { + public: + ByteArraySource(const char* p, size_t n) : ptr_(p), left_(n) { } + virtual ~ByteArraySource(); + virtual size_t Available() const; + virtual const char* Peek(size_t* len); + virtual void Skip(size_t n); + private: + const char* ptr_; + size_t left_; +}; + +// A Sink implementation that writes to a flat array without any bound checks. +class UncheckedByteArraySink : public Sink { + public: + explicit UncheckedByteArraySink(char* dest) : dest_(dest) { } + virtual ~UncheckedByteArraySink(); + virtual void Append(const char* data, size_t n); + virtual char* GetAppendBuffer(size_t len, char* scratch); + + // Return the current output pointer so that a caller can see how + // many bytes were produced. + // Note: this is not a Sink method. + char* CurrentDestination() const { return dest_; } + private: + char* dest_; +}; + + +} + +#endif // UTIL_SNAPPY_SNAPPY_SINKSOURCE_H_ diff --git a/snappy-1.1.0/snappy-stubs-internal.cc b/snappy-1.1.0/snappy-stubs-internal.cc new file mode 100644 index 0000000..6ed3343 --- /dev/null +++ b/snappy-1.1.0/snappy-stubs-internal.cc @@ -0,0 +1,42 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// +// 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 Google Inc. 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 +// 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. + +#include <algorithm> +#include <string> + +#include "snappy-stubs-internal.h" + +namespace snappy { + +void Varint::Append32(string* s, uint32 value) { + char buf[Varint::kMax32]; + const char* p = Varint::Encode32(buf, value); + s->append(buf, p - buf); +} + +} // namespace snappy diff --git a/snappy-1.1.0/snappy-stubs-internal.h b/snappy-1.1.0/snappy-stubs-internal.h new file mode 100644 index 0000000..12393b6 --- /dev/null +++ b/snappy-1.1.0/snappy-stubs-internal.h @@ -0,0 +1,491 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// +// 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 Google Inc. 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 +// 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. +// +// Various stubs for the open-source version of Snappy. + +#ifndef UTIL_SNAPPY_OPENSOURCE_SNAPPY_STUBS_INTERNAL_H_ +#define UTIL_SNAPPY_OPENSOURCE_SNAPPY_STUBS_INTERNAL_H_ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <string> + +#include <assert.h> +#include <stdlib.h> +#include <string.h> + +#ifdef HAVE_SYS_MMAN_H +#include <sys/mman.h> +#endif + +#include "snappy-stubs-public.h" + +#if defined(__x86_64__) + +// Enable 64-bit optimized versions of some routines. +#define ARCH_K8 1 + +#endif + +// Needed by OS X, among others. +#ifndef MAP_ANONYMOUS +#define MAP_ANONYMOUS MAP_ANON +#endif + +// Pull in std::min, std::ostream, and the likes. This is safe because this +// header file is never used from any public header files. +using namespace std; + +// The size of an array, if known at compile-time. +// Will give unexpected results if used on a pointer. +// We undefine it first, since some compilers already have a definition. +#ifdef ARRAYSIZE +#undef ARRAYSIZE +#endif +#define ARRAYSIZE(a) (sizeof(a) / sizeof(*(a))) + +// Static prediction hints. +#ifdef HAVE_BUILTIN_EXPECT +#define PREDICT_FALSE(x) (__builtin_expect(x, 0)) +#define PREDICT_TRUE(x) (__builtin_expect(!!(x), 1)) +#else +#define PREDICT_FALSE(x) x +#define PREDICT_TRUE(x) x +#endif + +// This is only used for recomputing the tag byte table used during +// decompression; for simplicity we just remove it from the open-source +// version (anyone who wants to regenerate it can just do the call +// themselves within main()). +#define DEFINE_bool(flag_name, default_value, description) \ + bool FLAGS_ ## flag_name = default_value +#define DECLARE_bool(flag_name) \ + extern bool FLAGS_ ## flag_name + +namespace snappy { + +static const uint32 kuint32max = static_cast<uint32>(0xFFFFFFFF); +static const int64 kint64max = static_cast<int64>(0x7FFFFFFFFFFFFFFFLL); + +// Potentially unaligned loads and stores. + +// x86 and PowerPC can simply do these loads and stores native. + +#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) + +#define UNALIGNED_LOAD16(_p) (*reinterpret_cast<const uint16 *>(_p)) +#define UNALIGNED_LOAD32(_p) (*reinterpret_cast<const uint32 *>(_p)) +#define UNALIGNED_LOAD64(_p) (*reinterpret_cast<const uint64 *>(_p)) + +#define UNALIGNED_STORE16(_p, _val) (*reinterpret_cast<uint16 *>(_p) = (_val)) +#define UNALIGNED_STORE32(_p, _val) (*reinterpret_cast<uint32 *>(_p) = (_val)) +#define UNALIGNED_STORE64(_p, _val) (*reinterpret_cast<uint64 *>(_p) = (_val)) + +// ARMv7 and newer support native unaligned accesses, but only of 16-bit +// and 32-bit values (not 64-bit); older versions either raise a fatal signal, +// do an unaligned read and rotate the words around a bit, or do the reads very +// slowly (trip through kernel mode). There's no simple #define that says just +// “ARMv7 or higher”, so we have to filter away all ARMv5 and ARMv6 +// sub-architectures. +// +// This is a mess, but there's not much we can do about it. + +#elif defined(__arm__) && \ + !defined(__ARM_ARCH_4__) && \ + !defined(__ARM_ARCH_4T__) && \ + !defined(__ARM_ARCH_5__) && \ + !defined(__ARM_ARCH_5T__) && \ + !defined(__ARM_ARCH_5TE__) && \ + !defined(__ARM_ARCH_5TEJ__) && \ + !defined(__ARM_ARCH_6__) && \ + !defined(__ARM_ARCH_6J__) && \ + !defined(__ARM_ARCH_6K__) && \ + !defined(__ARM_ARCH_6Z__) && \ + !defined(__ARM_ARCH_6ZK__) && \ + !defined(__ARM_ARCH_6T2__) + +#define UNALIGNED_LOAD16(_p) (*reinterpret_cast<const uint16 *>(_p)) +#define UNALIGNED_LOAD32(_p) (*reinterpret_cast<const uint32 *>(_p)) + +#define UNALIGNED_STORE16(_p, _val) (*reinterpret_cast<uint16 *>(_p) = (_val)) +#define UNALIGNED_STORE32(_p, _val) (*reinterpret_cast<uint32 *>(_p) = (_val)) + +// TODO(user): NEON supports unaligned 64-bit loads and stores. +// See if that would be more efficient on platforms supporting it, +// at least for copies. + +inline uint64 UNALIGNED_LOAD64(const void *p) { + uint64 t; + memcpy(&t, p, sizeof t); + return t; +} + +inline void UNALIGNED_STORE64(void *p, uint64 v) { + memcpy(p, &v, sizeof v); +} + +#else + +// These functions are provided for architectures that don't support +// unaligned loads and stores. + +inline uint16 UNALIGNED_LOAD16(const void *p) { + uint16 t; + memcpy(&t, p, sizeof t); + return t; +} + +inline uint32 UNALIGNED_LOAD32(const void *p) { + uint32 t; + memcpy(&t, p, sizeof t); + return t; +} + +inline uint64 UNALIGNED_LOAD64(const void *p) { + uint64 t; + memcpy(&t, p, sizeof t); + return t; +} + +inline void UNALIGNED_STORE16(void *p, uint16 v) { + memcpy(p, &v, sizeof v); +} + +inline void UNALIGNED_STORE32(void *p, uint32 v) { + memcpy(p, &v, sizeof v); +} + +inline void UNALIGNED_STORE64(void *p, uint64 v) { + memcpy(p, &v, sizeof v); +} + +#endif + +// This can be more efficient than UNALIGNED_LOAD64 + UNALIGNED_STORE64 +// on some platforms, in particular ARM. +inline void UnalignedCopy64(const void *src, void *dst) { + if (sizeof(void *) == 8) { + UNALIGNED_STORE64(dst, UNALIGNED_LOAD64(src)); + } else { + const char *src_char = reinterpret_cast<const char *>(src); + char *dst_char = reinterpret_cast<char *>(dst); + + UNALIGNED_STORE32(dst_char, UNALIGNED_LOAD32(src_char)); + UNALIGNED_STORE32(dst_char + 4, UNALIGNED_LOAD32(src_char + 4)); + } +} + +// The following guarantees declaration of the byte swap functions. +#ifdef WORDS_BIGENDIAN + +#ifdef HAVE_SYS_BYTEORDER_H +#include <sys/byteorder.h> +#endif + +#ifdef HAVE_SYS_ENDIAN_H +#include <sys/endian.h> +#endif + +#ifdef _MSC_VER +#include <stdlib.h> +#define bswap_16(x) _byteswap_ushort(x) +#define bswap_32(x) _byteswap_ulong(x) +#define bswap_64(x) _byteswap_uint64(x) + +#elif defined(__APPLE__) +// Mac OS X / Darwin features +#include <libkern/OSByteOrder.h> +#define bswap_16(x) OSSwapInt16(x) +#define bswap_32(x) OSSwapInt32(x) +#define bswap_64(x) OSSwapInt64(x) + +#elif defined(HAVE_BYTESWAP_H) +#include <byteswap.h> + +#elif defined(bswap32) +// FreeBSD defines bswap{16,32,64} in <sys/endian.h> (already #included). +#define bswap_16(x) bswap16(x) +#define bswap_32(x) bswap32(x) +#define bswap_64(x) bswap64(x) + +#elif defined(BSWAP_64) +// Solaris 10 defines BSWAP_{16,32,64} in <sys/byteorder.h> (already #included). +#define bswap_16(x) BSWAP_16(x) +#define bswap_32(x) BSWAP_32(x) +#define bswap_64(x) BSWAP_64(x) + +#else + +inline uint16 bswap_16(uint16 x) { + return (x << 8) | (x >> 8); +} + +inline uint32 bswap_32(uint32 x) { + x = ((x & 0xff00ff00UL) >> 8) | ((x & 0x00ff00ffUL) << 8); + return (x >> 16) | (x << 16); +} + +inline uint64 bswap_64(uint64 x) { + x = ((x & 0xff00ff00ff00ff00ULL) >> 8) | ((x & 0x00ff00ff00ff00ffULL) << 8); + x = ((x & 0xffff0000ffff0000ULL) >> 16) | ((x & 0x0000ffff0000ffffULL) << 16); + return (x >> 32) | (x << 32); +} + +#endif + +#endif // WORDS_BIGENDIAN + +// Convert to little-endian storage, opposite of network format. +// Convert x from host to little endian: x = LittleEndian.FromHost(x); +// convert x from little endian to host: x = LittleEndian.ToHost(x); +// +// Store values into unaligned memory converting to little endian order: +// LittleEndian.Store16(p, x); +// +// Load unaligned values stored in little endian converting to host order: +// x = LittleEndian.Load16(p); +class LittleEndian { + public: + // Conversion functions. +#ifdef WORDS_BIGENDIAN + + static uint16 FromHost16(uint16 x) { return bswap_16(x); } + static uint16 ToHost16(uint16 x) { return bswap_16(x); } + + static uint32 FromHost32(uint32 x) { return bswap_32(x); } + static uint32 ToHost32(uint32 x) { return bswap_32(x); } + + static bool IsLittleEndian() { return false; } + +#else // !defined(WORDS_BIGENDIAN) + + static uint16 FromHost16(uint16 x) { return x; } + static uint16 ToHost16(uint16 x) { return x; } + + static uint32 FromHost32(uint32 x) { return x; } + static uint32 ToHost32(uint32 x) { return x; } + + static bool IsLittleEndian() { return true; } + +#endif // !defined(WORDS_BIGENDIAN) + + // Functions to do unaligned loads and stores in little-endian order. + static uint16 Load16(const void *p) { + return ToHost16(UNALIGNED_LOAD16(p)); + } + + static void Store16(void *p, uint16 v) { + UNALIGNED_STORE16(p, FromHost16(v)); + } + + static uint32 Load32(const void *p) { + return ToHost32(UNALIGNED_LOAD32(p)); + } + + static void Store32(void *p, uint32 v) { + UNALIGNED_STORE32(p, FromHost32(v)); + } +}; + +// Some bit-manipulation functions. +class Bits { + public: + // Return floor(log2(n)) for positive integer n. Returns -1 iff n == 0. + static int Log2Floor(uint32 n); + + // Return the first set least / most significant bit, 0-indexed. Returns an + // undefined value if n == 0. FindLSBSetNonZero() is similar to ffs() except + // that it's 0-indexed. + static int FindLSBSetNonZero(uint32 n); + static int FindLSBSetNonZero64(uint64 n); + + private: + DISALLOW_COPY_AND_ASSIGN(Bits); +}; + +#ifdef HAVE_BUILTIN_CTZ + +inline int Bits::Log2Floor(uint32 n) { + return n == 0 ? -1 : 31 ^ __builtin_clz(n); +} + +inline int Bits::FindLSBSetNonZero(uint32 n) { + return __builtin_ctz(n); +} + +inline int Bits::FindLSBSetNonZero64(uint64 n) { + return __builtin_ctzll(n); +} + +#else // Portable versions. + +inline int Bits::Log2Floor(uint32 n) { + if (n == 0) + return -1; + int log = 0; + uint32 value = n; + for (int i = 4; i >= 0; --i) { + int shift = (1 << i); + uint32 x = value >> shift; + if (x != 0) { + value = x; + log += shift; + } + } + assert(value == 1); + return log; +} + +inline int Bits::FindLSBSetNonZero(uint32 n) { + int rc = 31; + for (int i = 4, shift = 1 << 4; i >= 0; --i) { + const uint32 x = n << shift; + if (x != 0) { + n = x; + rc -= shift; + } + shift >>= 1; + } + return rc; +} + +// FindLSBSetNonZero64() is defined in terms of FindLSBSetNonZero(). +inline int Bits::FindLSBSetNonZero64(uint64 n) { + const uint32 bottombits = static_cast<uint32>(n); + if (bottombits == 0) { + // Bottom bits are zero, so scan in top bits + return 32 + FindLSBSetNonZero(static_cast<uint32>(n >> 32)); + } else { + return FindLSBSetNonZero(bottombits); + } +} + +#endif // End portable versions. + +// Variable-length integer encoding. +class Varint { + public: + // Maximum lengths of varint encoding of uint32. + static const int kMax32 = 5; + + // Attempts to parse a varint32 from a prefix of the bytes in [ptr,limit-1]. + // Never reads a character at or beyond limit. If a valid/terminated varint32 + // was found in the range, stores it in *OUTPUT and returns a pointer just + // past the last byte of the varint32. Else returns NULL. On success, + // "result <= limit". + static const char* Parse32WithLimit(const char* ptr, const char* limit, + uint32* OUTPUT); + + // REQUIRES "ptr" points to a buffer of length sufficient to hold "v". + // EFFECTS Encodes "v" into "ptr" and returns a pointer to the + // byte just past the last encoded byte. + static char* Encode32(char* ptr, uint32 v); + + // EFFECTS Appends the varint representation of "value" to "*s". + static void Append32(string* s, uint32 value); +}; + +inline const char* Varint::Parse32WithLimit(const char* p, + const char* l, + uint32* OUTPUT) { + const unsigned char* ptr = reinterpret_cast<const unsigned char*>(p); + const unsigned char* limit = reinterpret_cast<const unsigned char*>(l); + uint32 b, result; + if (ptr >= limit) return NULL; + b = *(ptr++); result = b & 127; if (b < 128) goto done; + if (ptr >= limit) return NULL; + b = *(ptr++); result |= (b & 127) << 7; if (b < 128) goto done; + if (ptr >= limit) return NULL; + b = *(ptr++); result |= (b & 127) << 14; if (b < 128) goto done; + if (ptr >= limit) return NULL; + b = *(ptr++); result |= (b & 127) << 21; if (b < 128) goto done; + if (ptr >= limit) return NULL; + b = *(ptr++); result |= (b & 127) << 28; if (b < 16) goto done; + return NULL; // Value is too long to be a varint32 + done: + *OUTPUT = result; + return reinterpret_cast<const char*>(ptr); +} + +inline char* Varint::Encode32(char* sptr, uint32 v) { + // Operate on characters as unsigneds + unsigned char* ptr = reinterpret_cast<unsigned char*>(sptr); + static const int B = 128; + if (v < (1<<7)) { + *(ptr++) = v; + } else if (v < (1<<14)) { + *(ptr++) = v | B; + *(ptr++) = v>>7; + } else if (v < (1<<21)) { + *(ptr++) = v | B; + *(ptr++) = (v>>7) | B; + *(ptr++) = v>>14; + } else if (v < (1<<28)) { + *(ptr++) = v | B; + *(ptr++) = (v>>7) | B; + *(ptr++) = (v>>14) | B; + *(ptr++) = v>>21; + } else { + *(ptr++) = v | B; + *(ptr++) = (v>>7) | B; + *(ptr++) = (v>>14) | B; + *(ptr++) = (v>>21) | B; + *(ptr++) = v>>28; + } + return reinterpret_cast<char*>(ptr); +} + +// If you know the internal layout of the std::string in use, you can +// replace this function with one that resizes the string without +// filling the new space with zeros (if applicable) -- +// it will be non-portable but faster. +inline void STLStringResizeUninitialized(string* s, size_t new_size) { + s->resize(new_size); +} + +// Return a mutable char* pointing to a string's internal buffer, +// which may not be null-terminated. Writing through this pointer will +// modify the string. +// +// string_as_array(&str)[i] is valid for 0 <= i < str.size() until the +// next call to a string method that invalidates iterators. +// +// As of 2006-04, there is no standard-blessed way of getting a +// mutable reference to a string's internal buffer. However, issue 530 +// (http://www.open-std.org/JTC1/SC22/WG21/docs/lwg-defects.html#530) +// proposes this as the method. It will officially be part of the standard +// for C++0x. This should already work on all current implementations. +inline char* string_as_array(string* str) { + return str->empty() ? NULL : &*str->begin(); +} + +} // namespace snappy + +#endif // UTIL_SNAPPY_OPENSOURCE_SNAPPY_STUBS_INTERNAL_H_ diff --git a/snappy-1.1.0/snappy-stubs-public.h b/snappy-1.1.0/snappy-stubs-public.h new file mode 100644 index 0000000..96d8865 --- /dev/null +++ b/snappy-1.1.0/snappy-stubs-public.h @@ -0,0 +1,85 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// Author: sesse@google.com (Steinar H. Gunderson) +// +// 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 Google Inc. 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 +// 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. +// +// Various type stubs for the open-source version of Snappy. +// +// This file cannot include config.h, as it is included from snappy.h, +// which is a public header. Instead, snappy-stubs-public.h is generated by +// from snappy-stubs-public.h.in at configure time. + +#ifndef UTIL_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_ +#define UTIL_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_ + +#if 1 +#include <stdint.h> +#endif + +#if 1 +#include <stddef.h> +#endif + +#define SNAPPY_MAJOR 1 +#define SNAPPY_MINOR 1 +#define SNAPPY_PATCHLEVEL 0 +#define SNAPPY_VERSION \ + ((SNAPPY_MAJOR << 16) | (SNAPPY_MINOR << 8) | SNAPPY_PATCHLEVEL) + +#include <string> + +namespace snappy { + +#if 1 +typedef int8_t int8; +typedef uint8_t uint8; +typedef int16_t int16; +typedef uint16_t uint16; +typedef int32_t int32; +typedef uint32_t uint32; +typedef int64_t int64; +typedef uint64_t uint64; +#else +typedef signed char int8; +typedef unsigned char uint8; +typedef short int16; +typedef unsigned short uint16; +typedef int int32; +typedef unsigned int uint32; +typedef long long int64; +typedef unsigned long long uint64; +#endif + +typedef std::string string; + +#define DISALLOW_COPY_AND_ASSIGN(TypeName) \ + TypeName(const TypeName&); \ + void operator=(const TypeName&) + +} // namespace snappy + +#endif // UTIL_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_ diff --git a/snappy-1.1.0/snappy-stubs-public.h.in b/snappy-1.1.0/snappy-stubs-public.h.in new file mode 100644 index 0000000..f0babcb --- /dev/null +++ b/snappy-1.1.0/snappy-stubs-public.h.in @@ -0,0 +1,85 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// Author: sesse@google.com (Steinar H. Gunderson) +// +// 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 Google Inc. 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 +// 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. +// +// Various type stubs for the open-source version of Snappy. +// +// This file cannot include config.h, as it is included from snappy.h, +// which is a public header. Instead, snappy-stubs-public.h is generated by +// from snappy-stubs-public.h.in at configure time. + +#ifndef UTIL_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_ +#define UTIL_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_ + +#if @ac_cv_have_stdint_h@ +#include <stdint.h> +#endif + +#if @ac_cv_have_stddef_h@ +#include <stddef.h> +#endif + +#define SNAPPY_MAJOR @SNAPPY_MAJOR@ +#define SNAPPY_MINOR @SNAPPY_MINOR@ +#define SNAPPY_PATCHLEVEL @SNAPPY_PATCHLEVEL@ +#define SNAPPY_VERSION \ + ((SNAPPY_MAJOR << 16) | (SNAPPY_MINOR << 8) | SNAPPY_PATCHLEVEL) + +#include <string> + +namespace snappy { + +#if @ac_cv_have_stdint_h@ +typedef int8_t int8; +typedef uint8_t uint8; +typedef int16_t int16; +typedef uint16_t uint16; +typedef int32_t int32; +typedef uint32_t uint32; +typedef int64_t int64; +typedef uint64_t uint64; +#else +typedef signed char int8; +typedef unsigned char uint8; +typedef short int16; +typedef unsigned short uint16; +typedef int int32; +typedef unsigned int uint32; +typedef long long int64; +typedef unsigned long long uint64; +#endif + +typedef std::string string; + +#define DISALLOW_COPY_AND_ASSIGN(TypeName) \ + TypeName(const TypeName&); \ + void operator=(const TypeName&) + +} // namespace snappy + +#endif // UTIL_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_ diff --git a/snappy-1.1.0/snappy-test.cc b/snappy-1.1.0/snappy-test.cc new file mode 100644 index 0000000..3f4003d --- /dev/null +++ b/snappy-1.1.0/snappy-test.cc @@ -0,0 +1,602 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// +// 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 Google Inc. 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 +// 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. +// +// Various stubs for the unit tests for the open-source version of Snappy. + +#include "snappy-test.h" + +#ifdef HAVE_WINDOWS_H +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#endif + +#include <algorithm> + +DEFINE_bool(run_microbenchmarks, true, + "Run microbenchmarks before doing anything else."); + +namespace snappy { + +string ReadTestDataFile(const string& base) { + string contents; + const char* srcdir = getenv("srcdir"); // This is set by Automake. + if (srcdir) { + file::ReadFileToString(string(srcdir) + "/testdata/" + base, + &contents, + file::Defaults()).CheckSuccess(); + } else { + file::ReadFileToString("testdata/" + base, + &contents, + file::Defaults()).CheckSuccess(); + } + return contents; +} + +string StringPrintf(const char* format, ...) { + char buf[4096]; + va_list ap; + va_start(ap, format); + vsnprintf(buf, sizeof(buf), format, ap); + va_end(ap); + return buf; +} + +bool benchmark_running = false; +int64 benchmark_real_time_us = 0; +int64 benchmark_cpu_time_us = 0; +string *benchmark_label = NULL; +int64 benchmark_bytes_processed = 0; + +void ResetBenchmarkTiming() { + benchmark_real_time_us = 0; + benchmark_cpu_time_us = 0; +} + +#ifdef WIN32 +LARGE_INTEGER benchmark_start_real; +FILETIME benchmark_start_cpu; +#else // WIN32 +struct timeval benchmark_start_real; +struct rusage benchmark_start_cpu; +#endif // WIN32 + +void StartBenchmarkTiming() { +#ifdef WIN32 + QueryPerformanceCounter(&benchmark_start_real); + FILETIME dummy; + CHECK(GetProcessTimes( + GetCurrentProcess(), &dummy, &dummy, &dummy, &benchmark_start_cpu)); +#else + gettimeofday(&benchmark_start_real, NULL); + if (getrusage(RUSAGE_SELF, &benchmark_start_cpu) == -1) { + perror("getrusage(RUSAGE_SELF)"); + exit(1); + } +#endif + benchmark_running = true; +} + +void StopBenchmarkTiming() { + if (!benchmark_running) { + return; + } + +#ifdef WIN32 + LARGE_INTEGER benchmark_stop_real; + LARGE_INTEGER benchmark_frequency; + QueryPerformanceCounter(&benchmark_stop_real); + QueryPerformanceFrequency(&benchmark_frequency); + + double elapsed_real = static_cast<double>( + benchmark_stop_real.QuadPart - benchmark_start_real.QuadPart) / + benchmark_frequency.QuadPart; + benchmark_real_time_us += elapsed_real * 1e6 + 0.5; + + FILETIME benchmark_stop_cpu, dummy; + CHECK(GetProcessTimes( + GetCurrentProcess(), &dummy, &dummy, &dummy, &benchmark_stop_cpu)); + + ULARGE_INTEGER start_ulargeint; + start_ulargeint.LowPart = benchmark_start_cpu.dwLowDateTime; + start_ulargeint.HighPart = benchmark_start_cpu.dwHighDateTime; + + ULARGE_INTEGER stop_ulargeint; + stop_ulargeint.LowPart = benchmark_stop_cpu.dwLowDateTime; + stop_ulargeint.HighPart = benchmark_stop_cpu.dwHighDateTime; + + benchmark_cpu_time_us += + (stop_ulargeint.QuadPart - start_ulargeint.QuadPart + 5) / 10; +#else // WIN32 + struct timeval benchmark_stop_real; + gettimeofday(&benchmark_stop_real, NULL); + benchmark_real_time_us += + 1000000 * (benchmark_stop_real.tv_sec - benchmark_start_real.tv_sec); + benchmark_real_time_us += + (benchmark_stop_real.tv_usec - benchmark_start_real.tv_usec); + + struct rusage benchmark_stop_cpu; + if (getrusage(RUSAGE_SELF, &benchmark_stop_cpu) == -1) { + perror("getrusage(RUSAGE_SELF)"); + exit(1); + } + benchmark_cpu_time_us += 1000000 * (benchmark_stop_cpu.ru_utime.tv_sec - + benchmark_start_cpu.ru_utime.tv_sec); + benchmark_cpu_time_us += (benchmark_stop_cpu.ru_utime.tv_usec - + benchmark_start_cpu.ru_utime.tv_usec); +#endif // WIN32 + + benchmark_running = false; +} + +void SetBenchmarkLabel(const string& str) { + if (benchmark_label) { + delete benchmark_label; + } + benchmark_label = new string(str); +} + +void SetBenchmarkBytesProcessed(int64 bytes) { + benchmark_bytes_processed = bytes; +} + +struct BenchmarkRun { + int64 real_time_us; + int64 cpu_time_us; +}; + +struct BenchmarkCompareCPUTime { + bool operator() (const BenchmarkRun& a, const BenchmarkRun& b) const { + return a.cpu_time_us < b.cpu_time_us; + } +}; + +void Benchmark::Run() { + for (int test_case_num = start_; test_case_num <= stop_; ++test_case_num) { + // Run a few iterations first to find out approximately how fast + // the benchmark is. + const int kCalibrateIterations = 100; + ResetBenchmarkTiming(); + StartBenchmarkTiming(); + (*function_)(kCalibrateIterations, test_case_num); + StopBenchmarkTiming(); + + // Let each test case run for about 200ms, but at least as many + // as we used to calibrate. + // Run five times and pick the median. + const int kNumRuns = 5; + const int kMedianPos = kNumRuns / 2; + int num_iterations = 0; + if (benchmark_real_time_us > 0) { + num_iterations = 200000 * kCalibrateIterations / benchmark_real_time_us; + } + num_iterations = max(num_iterations, kCalibrateIterations); + BenchmarkRun benchmark_runs[kNumRuns]; + + for (int run = 0; run < kNumRuns; ++run) { + ResetBenchmarkTiming(); + StartBenchmarkTiming(); + (*function_)(num_iterations, test_case_num); + StopBenchmarkTiming(); + + benchmark_runs[run].real_time_us = benchmark_real_time_us; + benchmark_runs[run].cpu_time_us = benchmark_cpu_time_us; + } + + string heading = StringPrintf("%s/%d", name_.c_str(), test_case_num); + string human_readable_speed; + + nth_element(benchmark_runs, + benchmark_runs + kMedianPos, + benchmark_runs + kNumRuns, + BenchmarkCompareCPUTime()); + int64 real_time_us = benchmark_runs[kMedianPos].real_time_us; + int64 cpu_time_us = benchmark_runs[kMedianPos].cpu_time_us; + if (cpu_time_us <= 0) { + human_readable_speed = "?"; + } else { + int64 bytes_per_second = + benchmark_bytes_processed * 1000000 / cpu_time_us; + if (bytes_per_second < 1024) { + human_readable_speed = StringPrintf("%dB/s", bytes_per_second); + } else if (bytes_per_second < 1024 * 1024) { + human_readable_speed = StringPrintf( + "%.1fkB/s", bytes_per_second / 1024.0f); + } else if (bytes_per_second < 1024 * 1024 * 1024) { + human_readable_speed = StringPrintf( + "%.1fMB/s", bytes_per_second / (1024.0f * 1024.0f)); + } else { + human_readable_speed = StringPrintf( + "%.1fGB/s", bytes_per_second / (1024.0f * 1024.0f * 1024.0f)); + } + } + + fprintf(stderr, +#ifdef WIN32 + "%-18s %10I64d %10I64d %10d %s %s\n", +#else + "%-18s %10lld %10lld %10d %s %s\n", +#endif + heading.c_str(), + static_cast<long long>(real_time_us * 1000 / num_iterations), + static_cast<long long>(cpu_time_us * 1000 / num_iterations), + num_iterations, + human_readable_speed.c_str(), + benchmark_label->c_str()); + } +} + +#ifdef HAVE_LIBZ + +ZLib::ZLib() + : comp_init_(false), + uncomp_init_(false) { + Reinit(); +} + +ZLib::~ZLib() { + if (comp_init_) { deflateEnd(&comp_stream_); } + if (uncomp_init_) { inflateEnd(&uncomp_stream_); } +} + +void ZLib::Reinit() { + compression_level_ = Z_DEFAULT_COMPRESSION; + window_bits_ = MAX_WBITS; + mem_level_ = 8; // DEF_MEM_LEVEL + if (comp_init_) { + deflateEnd(&comp_stream_); + comp_init_ = false; + } + if (uncomp_init_) { + inflateEnd(&uncomp_stream_); + uncomp_init_ = false; + } + first_chunk_ = true; +} + +void ZLib::Reset() { + first_chunk_ = true; +} + +// --------- COMPRESS MODE + +// Initialization method to be called if we hit an error while +// compressing. On hitting an error, call this method before returning +// the error. +void ZLib::CompressErrorInit() { + deflateEnd(&comp_stream_); + comp_init_ = false; + Reset(); +} + +int ZLib::DeflateInit() { + return deflateInit2(&comp_stream_, + compression_level_, + Z_DEFLATED, + window_bits_, + mem_level_, + Z_DEFAULT_STRATEGY); +} + +int ZLib::CompressInit(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen) { + int err; + + comp_stream_.next_in = (Bytef*)source; + comp_stream_.avail_in = (uInt)*sourceLen; + if ((uLong)comp_stream_.avail_in != *sourceLen) return Z_BUF_ERROR; + comp_stream_.next_out = dest; + comp_stream_.avail_out = (uInt)*destLen; + if ((uLong)comp_stream_.avail_out != *destLen) return Z_BUF_ERROR; + + if ( !first_chunk_ ) // only need to set up stream the first time through + return Z_OK; + + if (comp_init_) { // we've already initted it + err = deflateReset(&comp_stream_); + if (err != Z_OK) { + LOG(WARNING) << "ERROR: Can't reset compress object; creating a new one"; + deflateEnd(&comp_stream_); + comp_init_ = false; + } + } + if (!comp_init_) { // first use + comp_stream_.zalloc = (alloc_func)0; + comp_stream_.zfree = (free_func)0; + comp_stream_.opaque = (voidpf)0; + err = DeflateInit(); + if (err != Z_OK) return err; + comp_init_ = true; + } + return Z_OK; +} + +// In a perfect world we'd always have the full buffer to compress +// when the time came, and we could just call Compress(). Alas, we +// want to do chunked compression on our webserver. In this +// application, we compress the header, send it off, then compress the +// results, send them off, then compress the footer. Thus we need to +// use the chunked compression features of zlib. +int ZLib::CompressAtMostOrAll(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen, + int flush_mode) { // Z_FULL_FLUSH or Z_FINISH + int err; + + if ( (err=CompressInit(dest, destLen, source, sourceLen)) != Z_OK ) + return err; + + // This is used to figure out how many bytes we wrote *this chunk* + int compressed_size = comp_stream_.total_out; + + // Some setup happens only for the first chunk we compress in a run + if ( first_chunk_ ) { + first_chunk_ = false; + } + + // flush_mode is Z_FINISH for all mode, Z_SYNC_FLUSH for incremental + // compression. + err = deflate(&comp_stream_, flush_mode); + + *sourceLen = comp_stream_.avail_in; + + if ((err == Z_STREAM_END || err == Z_OK) + && comp_stream_.avail_in == 0 + && comp_stream_.avail_out != 0 ) { + // we processed everything ok and the output buffer was large enough. + ; + } else if (err == Z_STREAM_END && comp_stream_.avail_in > 0) { + return Z_BUF_ERROR; // should never happen + } else if (err != Z_OK && err != Z_STREAM_END && err != Z_BUF_ERROR) { + // an error happened + CompressErrorInit(); + return err; + } else if (comp_stream_.avail_out == 0) { // not enough space + err = Z_BUF_ERROR; + } + + assert(err == Z_OK || err == Z_STREAM_END || err == Z_BUF_ERROR); + if (err == Z_STREAM_END) + err = Z_OK; + + // update the crc and other metadata + compressed_size = comp_stream_.total_out - compressed_size; // delta + *destLen = compressed_size; + + return err; +} + +int ZLib::CompressChunkOrAll(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int flush_mode) { // Z_FULL_FLUSH or Z_FINISH + const int ret = + CompressAtMostOrAll(dest, destLen, source, &sourceLen, flush_mode); + if (ret == Z_BUF_ERROR) + CompressErrorInit(); + return ret; +} + +// This routine only initializes the compression stream once. Thereafter, it +// just does a deflateReset on the stream, which should be faster. +int ZLib::Compress(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen) { + int err; + if ( (err=CompressChunkOrAll(dest, destLen, source, sourceLen, + Z_FINISH)) != Z_OK ) + return err; + Reset(); // reset for next call to Compress + + return Z_OK; +} + + +// --------- UNCOMPRESS MODE + +int ZLib::InflateInit() { + return inflateInit2(&uncomp_stream_, MAX_WBITS); +} + +// Initialization method to be called if we hit an error while +// uncompressing. On hitting an error, call this method before +// returning the error. +void ZLib::UncompressErrorInit() { + inflateEnd(&uncomp_stream_); + uncomp_init_ = false; + Reset(); +} + +int ZLib::UncompressInit(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen) { + int err; + + uncomp_stream_.next_in = (Bytef*)source; + uncomp_stream_.avail_in = (uInt)*sourceLen; + // Check for source > 64K on 16-bit machine: + if ((uLong)uncomp_stream_.avail_in != *sourceLen) return Z_BUF_ERROR; + + uncomp_stream_.next_out = dest; + uncomp_stream_.avail_out = (uInt)*destLen; + if ((uLong)uncomp_stream_.avail_out != *destLen) return Z_BUF_ERROR; + + if ( !first_chunk_ ) // only need to set up stream the first time through + return Z_OK; + + if (uncomp_init_) { // we've already initted it + err = inflateReset(&uncomp_stream_); + if (err != Z_OK) { + LOG(WARNING) + << "ERROR: Can't reset uncompress object; creating a new one"; + UncompressErrorInit(); + } + } + if (!uncomp_init_) { + uncomp_stream_.zalloc = (alloc_func)0; + uncomp_stream_.zfree = (free_func)0; + uncomp_stream_.opaque = (voidpf)0; + err = InflateInit(); + if (err != Z_OK) return err; + uncomp_init_ = true; + } + return Z_OK; +} + +// If you compressed your data a chunk at a time, with CompressChunk, +// you can uncompress it a chunk at a time with UncompressChunk. +// Only difference bewteen chunked and unchunked uncompression +// is the flush mode we use: Z_SYNC_FLUSH (chunked) or Z_FINISH (unchunked). +int ZLib::UncompressAtMostOrAll(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen, + int flush_mode) { // Z_SYNC_FLUSH or Z_FINISH + int err = Z_OK; + + if ( (err=UncompressInit(dest, destLen, source, sourceLen)) != Z_OK ) { + LOG(WARNING) << "UncompressInit: Error: " << err << " SourceLen: " + << *sourceLen; + return err; + } + + // This is used to figure out how many output bytes we wrote *this chunk*: + const uLong old_total_out = uncomp_stream_.total_out; + + // This is used to figure out how many input bytes we read *this chunk*: + const uLong old_total_in = uncomp_stream_.total_in; + + // Some setup happens only for the first chunk we compress in a run + if ( first_chunk_ ) { + first_chunk_ = false; // so we don't do this again + + // For the first chunk *only* (to avoid infinite troubles), we let + // there be no actual data to uncompress. This sometimes triggers + // when the input is only the gzip header, say. + if ( *sourceLen == 0 ) { + *destLen = 0; + return Z_OK; + } + } + + // We'll uncompress as much as we can. If we end OK great, otherwise + // if we get an error that seems to be the gzip footer, we store the + // gzip footer and return OK, otherwise we return the error. + + // flush_mode is Z_SYNC_FLUSH for chunked mode, Z_FINISH for all mode. + err = inflate(&uncomp_stream_, flush_mode); + + // Figure out how many bytes of the input zlib slurped up: + const uLong bytes_read = uncomp_stream_.total_in - old_total_in; + CHECK_LE(source + bytes_read, source + *sourceLen); + *sourceLen = uncomp_stream_.avail_in; + + if ((err == Z_STREAM_END || err == Z_OK) // everything went ok + && uncomp_stream_.avail_in == 0) { // and we read it all + ; + } else if (err == Z_STREAM_END && uncomp_stream_.avail_in > 0) { + LOG(WARNING) + << "UncompressChunkOrAll: Received some extra data, bytes total: " + << uncomp_stream_.avail_in << " bytes: " + << string(reinterpret_cast<const char *>(uncomp_stream_.next_in), + min(int(uncomp_stream_.avail_in), 20)); + UncompressErrorInit(); + return Z_DATA_ERROR; // what's the extra data for? + } else if (err != Z_OK && err != Z_STREAM_END && err != Z_BUF_ERROR) { + // an error happened + LOG(WARNING) << "UncompressChunkOrAll: Error: " << err + << " avail_out: " << uncomp_stream_.avail_out; + UncompressErrorInit(); + return err; + } else if (uncomp_stream_.avail_out == 0) { + err = Z_BUF_ERROR; + } + + assert(err == Z_OK || err == Z_BUF_ERROR || err == Z_STREAM_END); + if (err == Z_STREAM_END) + err = Z_OK; + + *destLen = uncomp_stream_.total_out - old_total_out; // size for this call + + return err; +} + +int ZLib::UncompressChunkOrAll(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int flush_mode) { // Z_SYNC_FLUSH or Z_FINISH + const int ret = + UncompressAtMostOrAll(dest, destLen, source, &sourceLen, flush_mode); + if (ret == Z_BUF_ERROR) + UncompressErrorInit(); + return ret; +} + +int ZLib::UncompressAtMost(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen) { + return UncompressAtMostOrAll(dest, destLen, source, sourceLen, Z_SYNC_FLUSH); +} + +// We make sure we've uncompressed everything, that is, the current +// uncompress stream is at a compressed-buffer-EOF boundary. In gzip +// mode, we also check the gzip footer to make sure we pass the gzip +// consistency checks. We RETURN true iff both types of checks pass. +bool ZLib::UncompressChunkDone() { + assert(!first_chunk_ && uncomp_init_); + // Make sure we're at the end-of-compressed-data point. This means + // if we call inflate with Z_FINISH we won't consume any input or + // write any output + Bytef dummyin, dummyout; + uLongf dummylen = 0; + if ( UncompressChunkOrAll(&dummyout, &dummylen, &dummyin, 0, Z_FINISH) + != Z_OK ) { + return false; + } + + // Make sure that when we exit, we can start a new round of chunks later + Reset(); + + return true; +} + +// Uncompresses the source buffer into the destination buffer. +// The destination buffer must be long enough to hold the entire +// decompressed contents. +// +// We only initialize the uncomp_stream once. Thereafter, we use +// inflateReset, which should be faster. +// +// Returns Z_OK on success, otherwise, it returns a zlib error code. +int ZLib::Uncompress(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen) { + int err; + if ( (err=UncompressChunkOrAll(dest, destLen, source, sourceLen, + Z_FINISH)) != Z_OK ) { + Reset(); // let us try to compress again + return err; + } + if ( !UncompressChunkDone() ) // calls Reset() + return Z_DATA_ERROR; + return Z_OK; // stream_end is ok +} + +#endif // HAVE_LIBZ + +} // namespace snappy diff --git a/snappy-1.1.0/snappy-test.h b/snappy-1.1.0/snappy-test.h new file mode 100644 index 0000000..bec9020 --- /dev/null +++ b/snappy-1.1.0/snappy-test.h @@ -0,0 +1,584 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// +// 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 Google Inc. 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 +// 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. +// +// Various stubs for the unit tests for the open-source version of Snappy. + +#ifndef UTIL_SNAPPY_OPENSOURCE_SNAPPY_TEST_H_ +#define UTIL_SNAPPY_OPENSOURCE_SNAPPY_TEST_H_ + +#include <iostream> +#include <string> + +#include "snappy-stubs-internal.h" + +#include <stdio.h> +#include <stdarg.h> + +#ifdef HAVE_SYS_MMAN_H +#include <sys/mman.h> +#endif + +#ifdef HAVE_SYS_RESOURCE_H +#include <sys/resource.h> +#endif + +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#endif + +#ifdef HAVE_WINDOWS_H +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#endif + +#include <string> + +#ifdef HAVE_GTEST + +#include <gtest/gtest.h> +#undef TYPED_TEST +#define TYPED_TEST TEST +#define INIT_GTEST(argc, argv) ::testing::InitGoogleTest(argc, *argv) + +#else + +// Stubs for if the user doesn't have Google Test installed. + +#define TEST(test_case, test_subcase) \ + void Test_ ## test_case ## _ ## test_subcase() +#define INIT_GTEST(argc, argv) + +#define TYPED_TEST TEST +#define EXPECT_EQ CHECK_EQ +#define EXPECT_NE CHECK_NE +#define EXPECT_FALSE(cond) CHECK(!(cond)) + +#endif + +#ifdef HAVE_GFLAGS + +#include <gflags/gflags.h> + +// This is tricky; both gflags and Google Test want to look at the command line +// arguments. Google Test seems to be the most happy with unknown arguments, +// though, so we call it first and hope for the best. +#define InitGoogle(argv0, argc, argv, remove_flags) \ + INIT_GTEST(argc, argv); \ + google::ParseCommandLineFlags(argc, argv, remove_flags); + +#else + +// If we don't have the gflags package installed, these can only be +// changed at compile time. +#define DEFINE_int32(flag_name, default_value, description) \ + static int FLAGS_ ## flag_name = default_value; + +#define InitGoogle(argv0, argc, argv, remove_flags) \ + INIT_GTEST(argc, argv) + +#endif + +#ifdef HAVE_LIBZ +#include "zlib.h" +#endif + +#ifdef HAVE_LIBLZO2 +#include "lzo/lzo1x.h" +#endif + +#ifdef HAVE_LIBLZF +extern "C" { +#include "lzf.h" +} +#endif + +#ifdef HAVE_LIBFASTLZ +#include "fastlz.h" +#endif + +#ifdef HAVE_LIBQUICKLZ +#include "quicklz.h" +#endif + +namespace { + +namespace File { + void Init() { } +} // namespace File + +namespace file { + int Defaults() { } + + class DummyStatus { + public: + void CheckSuccess() { } + }; + + DummyStatus ReadFileToString(const char* filename, string* data, int unused) { + FILE* fp = fopen(filename, "rb"); + if (fp == NULL) { + perror(filename); + exit(1); + } + + data->clear(); + while (!feof(fp)) { + char buf[4096]; + size_t ret = fread(buf, 1, 4096, fp); + if (ret == 0 && ferror(fp)) { + perror("fread"); + exit(1); + } + data->append(string(buf, ret)); + } + + fclose(fp); + } + + DummyStatus ReadFileToString(const string& filename, + string* data, + int unused) { + ReadFileToString(filename.c_str(), data, unused); + } + + DummyStatus WriteStringToFile(const string& str, + const string& filename, + int unused) { + FILE* fp = fopen(filename.c_str(), "wb"); + if (fp == NULL) { + perror(filename.c_str()); + exit(1); + } + + int ret = fwrite(str.data(), str.size(), 1, fp); + if (ret != 1) { + perror("fwrite"); + exit(1); + } + + fclose(fp); + } +} // namespace file + +} // namespace + +namespace snappy { + +#define FLAGS_test_random_seed 301 +typedef string TypeParam; + +void Test_CorruptedTest_VerifyCorrupted(); +void Test_Snappy_SimpleTests(); +void Test_Snappy_MaxBlowup(); +void Test_Snappy_RandomData(); +void Test_Snappy_FourByteOffset(); +void Test_SnappyCorruption_TruncatedVarint(); +void Test_SnappyCorruption_UnterminatedVarint(); +void Test_Snappy_ReadPastEndOfBuffer(); +void Test_Snappy_FindMatchLength(); +void Test_Snappy_FindMatchLengthRandom(); + +string ReadTestDataFile(const string& base); + +// A sprintf() variant that returns a std::string. +// Not safe for general use due to truncation issues. +string StringPrintf(const char* format, ...); + +// A simple, non-cryptographically-secure random generator. +class ACMRandom { + public: + explicit ACMRandom(uint32 seed) : seed_(seed) {} + + int32 Next(); + + int32 Uniform(int32 n) { + return Next() % n; + } + uint8 Rand8() { + return static_cast<uint8>((Next() >> 1) & 0x000000ff); + } + bool OneIn(int X) { return Uniform(X) == 0; } + + // Skewed: pick "base" uniformly from range [0,max_log] and then + // return "base" random bits. The effect is to pick a number in the + // range [0,2^max_log-1] with bias towards smaller numbers. + int32 Skewed(int max_log); + + private: + static const uint32 M = 2147483647L; // 2^31-1 + uint32 seed_; +}; + +inline int32 ACMRandom::Next() { + static const uint64 A = 16807; // bits 14, 8, 7, 5, 2, 1, 0 + // We are computing + // seed_ = (seed_ * A) % M, where M = 2^31-1 + // + // seed_ must not be zero or M, or else all subsequent computed values + // will be zero or M respectively. For all other values, seed_ will end + // up cycling through every number in [1,M-1] + uint64 product = seed_ * A; + + // Compute (product % M) using the fact that ((x << 31) % M) == x. + seed_ = (product >> 31) + (product & M); + // The first reduction may overflow by 1 bit, so we may need to repeat. + // mod == M is not possible; using > allows the faster sign-bit-based test. + if (seed_ > M) { + seed_ -= M; + } + return seed_; +} + +inline int32 ACMRandom::Skewed(int max_log) { + const int32 base = (Next() - 1) % (max_log+1); + return (Next() - 1) & ((1u << base)-1); +} + +// A wall-time clock. This stub is not super-accurate, nor resistant to the +// system time changing. +class CycleTimer { + public: + CycleTimer() : real_time_us_(0) {} + + void Start() { +#ifdef WIN32 + QueryPerformanceCounter(&start_); +#else + gettimeofday(&start_, NULL); +#endif + } + + void Stop() { +#ifdef WIN32 + LARGE_INTEGER stop; + LARGE_INTEGER frequency; + QueryPerformanceCounter(&stop); + QueryPerformanceFrequency(&frequency); + + double elapsed = static_cast<double>(stop.QuadPart - start_.QuadPart) / + frequency.QuadPart; + real_time_us_ += elapsed * 1e6 + 0.5; +#else + struct timeval stop; + gettimeofday(&stop, NULL); + + real_time_us_ += 1000000 * (stop.tv_sec - start_.tv_sec); + real_time_us_ += (stop.tv_usec - start_.tv_usec); +#endif + } + + double Get() { + return real_time_us_ * 1e-6; + } + + private: + int64 real_time_us_; +#ifdef WIN32 + LARGE_INTEGER start_; +#else + struct timeval start_; +#endif +}; + +// Minimalistic microbenchmark framework. + +typedef void (*BenchmarkFunction)(int, int); + +class Benchmark { + public: + Benchmark(const string& name, BenchmarkFunction function) : + name_(name), function_(function) {} + + Benchmark* DenseRange(int start, int stop) { + start_ = start; + stop_ = stop; + return this; + } + + void Run(); + + private: + const string name_; + const BenchmarkFunction function_; + int start_, stop_; +}; +#define BENCHMARK(benchmark_name) \ + Benchmark* Benchmark_ ## benchmark_name = \ + (new Benchmark(#benchmark_name, benchmark_name)) + +extern Benchmark* Benchmark_BM_UFlat; +extern Benchmark* Benchmark_BM_UValidate; +extern Benchmark* Benchmark_BM_ZFlat; + +void ResetBenchmarkTiming(); +void StartBenchmarkTiming(); +void StopBenchmarkTiming(); +void SetBenchmarkLabel(const string& str); +void SetBenchmarkBytesProcessed(int64 bytes); + +#ifdef HAVE_LIBZ + +// Object-oriented wrapper around zlib. +class ZLib { + public: + ZLib(); + ~ZLib(); + + // Wipe a ZLib object to a virgin state. This differs from Reset() + // in that it also breaks any state. + void Reinit(); + + // Call this to make a zlib buffer as good as new. Here's the only + // case where they differ: + // CompressChunk(a); CompressChunk(b); CompressChunkDone(); vs + // CompressChunk(a); Reset(); CompressChunk(b); CompressChunkDone(); + // You'll want to use Reset(), then, when you interrupt a compress + // (or uncompress) in the middle of a chunk and want to start over. + void Reset(); + + // According to the zlib manual, when you Compress, the destination + // buffer must have size at least src + .1%*src + 12. This function + // helps you calculate that. Augment this to account for a potential + // gzip header and footer, plus a few bytes of slack. + static int MinCompressbufSize(int uncompress_size) { + return uncompress_size + uncompress_size/1000 + 40; + } + + // Compresses the source buffer into the destination buffer. + // sourceLen is the byte length of the source buffer. + // Upon entry, destLen is the total size of the destination buffer, + // which must be of size at least MinCompressbufSize(sourceLen). + // Upon exit, destLen is the actual size of the compressed buffer. + // + // This function can be used to compress a whole file at once if the + // input file is mmap'ed. + // + // Returns Z_OK if success, Z_MEM_ERROR if there was not + // enough memory, Z_BUF_ERROR if there was not enough room in the + // output buffer. Note that if the output buffer is exactly the same + // size as the compressed result, we still return Z_BUF_ERROR. + // (check CL#1936076) + int Compress(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen); + + // Uncompresses the source buffer into the destination buffer. + // The destination buffer must be long enough to hold the entire + // decompressed contents. + // + // Returns Z_OK on success, otherwise, it returns a zlib error code. + int Uncompress(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen); + + // Uncompress data one chunk at a time -- ie you can call this + // more than once. To get this to work you need to call per-chunk + // and "done" routines. + // + // Returns Z_OK if success, Z_MEM_ERROR if there was not + // enough memory, Z_BUF_ERROR if there was not enough room in the + // output buffer. + + int UncompressAtMost(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen); + + // Checks gzip footer information, as needed. Mostly this just + // makes sure the checksums match. Whenever you call this, it + // will assume the last 8 bytes from the previous UncompressChunk + // call are the footer. Returns true iff everything looks ok. + bool UncompressChunkDone(); + + private: + int InflateInit(); // sets up the zlib inflate structure + int DeflateInit(); // sets up the zlib deflate structure + + // These init the zlib data structures for compressing/uncompressing + int CompressInit(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen); + int UncompressInit(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen); + // Initialization method to be called if we hit an error while + // uncompressing. On hitting an error, call this method before + // returning the error. + void UncompressErrorInit(); + + // Helper function for Compress + int CompressChunkOrAll(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int flush_mode); + int CompressAtMostOrAll(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen, + int flush_mode); + + // Likewise for UncompressAndUncompressChunk + int UncompressChunkOrAll(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int flush_mode); + + int UncompressAtMostOrAll(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen, + int flush_mode); + + // Initialization method to be called if we hit an error while + // compressing. On hitting an error, call this method before + // returning the error. + void CompressErrorInit(); + + int compression_level_; // compression level + int window_bits_; // log base 2 of the window size used in compression + int mem_level_; // specifies the amount of memory to be used by + // compressor (1-9) + z_stream comp_stream_; // Zlib stream data structure + bool comp_init_; // True if we have initialized comp_stream_ + z_stream uncomp_stream_; // Zlib stream data structure + bool uncomp_init_; // True if we have initialized uncomp_stream_ + + // These are used only with chunked compression. + bool first_chunk_; // true if we need to emit headers with this chunk +}; + +#endif // HAVE_LIBZ + +} // namespace snappy + +DECLARE_bool(run_microbenchmarks); + +static void RunSpecifiedBenchmarks() { + if (!FLAGS_run_microbenchmarks) { + return; + } + + fprintf(stderr, "Running microbenchmarks.\n"); +#ifndef NDEBUG + fprintf(stderr, "WARNING: Compiled with assertions enabled, will be slow.\n"); +#endif +#ifndef __OPTIMIZE__ + fprintf(stderr, "WARNING: Compiled without optimization, will be slow.\n"); +#endif + fprintf(stderr, "Benchmark Time(ns) CPU(ns) Iterations\n"); + fprintf(stderr, "---------------------------------------------------\n"); + + snappy::Benchmark_BM_UFlat->Run(); + snappy::Benchmark_BM_UValidate->Run(); + snappy::Benchmark_BM_ZFlat->Run(); + + fprintf(stderr, "\n"); +} + +#ifndef HAVE_GTEST + +static inline int RUN_ALL_TESTS() { + fprintf(stderr, "Running correctness tests.\n"); + snappy::Test_CorruptedTest_VerifyCorrupted(); + snappy::Test_Snappy_SimpleTests(); + snappy::Test_Snappy_MaxBlowup(); + snappy::Test_Snappy_RandomData(); + snappy::Test_Snappy_FourByteOffset(); + snappy::Test_SnappyCorruption_TruncatedVarint(); + snappy::Test_SnappyCorruption_UnterminatedVarint(); + snappy::Test_Snappy_ReadPastEndOfBuffer(); + snappy::Test_Snappy_FindMatchLength(); + snappy::Test_Snappy_FindMatchLengthRandom(); + fprintf(stderr, "All tests passed.\n"); + + return 0; +} + +#endif // HAVE_GTEST + +// For main(). +namespace snappy { + +static void CompressFile(const char* fname); +static void UncompressFile(const char* fname); +static void MeasureFile(const char* fname); + +// Logging. + +#define LOG(level) LogMessage() +#define VLOG(level) true ? (void)0 : \ + snappy::LogMessageVoidify() & snappy::LogMessage() + +class LogMessage { + public: + LogMessage() { } + ~LogMessage() { + cerr << endl; + } + + LogMessage& operator<<(const std::string& msg) { + cerr << msg; + return *this; + } + LogMessage& operator<<(int x) { + cerr << x; + return *this; + } +}; + +// Asserts, both versions activated in debug mode only, +// and ones that are always active. + +#define CRASH_UNLESS(condition) \ + PREDICT_TRUE(condition) ? (void)0 : \ + snappy::LogMessageVoidify() & snappy::LogMessageCrash() + +class LogMessageCrash : public LogMessage { + public: + LogMessageCrash() { } + ~LogMessageCrash() { + cerr << endl; + abort(); + } +}; + +// This class is used to explicitly ignore values in the conditional +// logging macros. This avoids compiler warnings like "value computed +// is not used" and "statement has no effect". + +class LogMessageVoidify { + public: + LogMessageVoidify() { } + // This has to be an operator with a precedence lower than << but + // higher than ?: + void operator&(const LogMessage&) { } +}; + +#define CHECK(cond) CRASH_UNLESS(cond) +#define CHECK_LE(a, b) CRASH_UNLESS((a) <= (b)) +#define CHECK_GE(a, b) CRASH_UNLESS((a) >= (b)) +#define CHECK_EQ(a, b) CRASH_UNLESS((a) == (b)) +#define CHECK_NE(a, b) CRASH_UNLESS((a) != (b)) +#define CHECK_LT(a, b) CRASH_UNLESS((a) < (b)) +#define CHECK_GT(a, b) CRASH_UNLESS((a) > (b)) + +} // namespace + +using snappy::CompressFile; +using snappy::UncompressFile; +using snappy::MeasureFile; + +#endif // UTIL_SNAPPY_OPENSOURCE_SNAPPY_TEST_H_ diff --git a/snappy-1.1.0/snappy.cc b/snappy-1.1.0/snappy.cc new file mode 100644 index 0000000..1230321 --- /dev/null +++ b/snappy-1.1.0/snappy.cc @@ -0,0 +1,1119 @@ +// Copyright 2005 Google Inc. All Rights Reserved. +// +// 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 Google Inc. 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 +// 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. + +#include "snappy.h" +#include "snappy-internal.h" +#include "snappy-sinksource.h" + +#include <stdio.h> + +#include <algorithm> +#include <string> +#include <vector> + + +namespace snappy { + +// Any hash function will produce a valid compressed bitstream, but a good +// hash function reduces the number of collisions and thus yields better +// compression for compressible input, and more speed for incompressible +// input. Of course, it doesn't hurt if the hash function is reasonably fast +// either, as it gets called a lot. +static inline uint32 HashBytes(uint32 bytes, int shift) { + uint32 kMul = 0x1e35a7bd; + return (bytes * kMul) >> shift; +} +static inline uint32 Hash(const char* p, int shift) { + return HashBytes(UNALIGNED_LOAD32(p), shift); +} + +size_t MaxCompressedLength(size_t source_len) { + // Compressed data can be defined as: + // compressed := item* literal* + // item := literal* copy + // + // The trailing literal sequence has a space blowup of at most 62/60 + // since a literal of length 60 needs one tag byte + one extra byte + // for length information. + // + // Item blowup is trickier to measure. Suppose the "copy" op copies + // 4 bytes of data. Because of a special check in the encoding code, + // we produce a 4-byte copy only if the offset is < 65536. Therefore + // the copy op takes 3 bytes to encode, and this type of item leads + // to at most the 62/60 blowup for representing literals. + // + // Suppose the "copy" op copies 5 bytes of data. If the offset is big + // enough, it will take 5 bytes to encode the copy op. Therefore the + // worst case here is a one-byte literal followed by a five-byte copy. + // I.e., 6 bytes of input turn into 7 bytes of "compressed" data. + // + // This last factor dominates the blowup, so the final estimate is: + return 32 + source_len + source_len/6; +} + +enum { + LITERAL = 0, + COPY_1_BYTE_OFFSET = 1, // 3 bit length + 3 bits of offset in opcode + COPY_2_BYTE_OFFSET = 2, + COPY_4_BYTE_OFFSET = 3 +}; + +// Copy "len" bytes from "src" to "op", one byte at a time. Used for +// handling COPY operations where the input and output regions may +// overlap. For example, suppose: +// src == "ab" +// op == src + 2 +// len == 20 +// After IncrementalCopy(src, op, len), the result will have +// eleven copies of "ab" +// ababababababababababab +// Note that this does not match the semantics of either memcpy() +// or memmove(). +static inline void IncrementalCopy(const char* src, char* op, int len) { + assert(len > 0); + do { + *op++ = *src++; + } while (--len > 0); +} + +// Equivalent to IncrementalCopy except that it can write up to ten extra +// bytes after the end of the copy, and that it is faster. +// +// The main part of this loop is a simple copy of eight bytes at a time until +// we've copied (at least) the requested amount of bytes. However, if op and +// src are less than eight bytes apart (indicating a repeating pattern of +// length < 8), we first need to expand the pattern in order to get the correct +// results. For instance, if the buffer looks like this, with the eight-byte +// <src> and <op> patterns marked as intervals: +// +// abxxxxxxxxxxxx +// [------] src +// [------] op +// +// a single eight-byte copy from <src> to <op> will repeat the pattern once, +// after which we can move <op> two bytes without moving <src>: +// +// ababxxxxxxxxxx +// [------] src +// [------] op +// +// and repeat the exercise until the two no longer overlap. +// +// This allows us to do very well in the special case of one single byte +// repeated many times, without taking a big hit for more general cases. +// +// The worst case of extra writing past the end of the match occurs when +// op - src == 1 and len == 1; the last copy will read from byte positions +// [0..7] and write to [4..11], whereas it was only supposed to write to +// position 1. Thus, ten excess bytes. + +namespace { + +const int kMaxIncrementCopyOverflow = 10; + +} // namespace + +static inline void IncrementalCopyFastPath(const char* src, char* op, int len) { + while (op - src < 8) { + UnalignedCopy64(src, op); + len -= op - src; + op += op - src; + } + while (len > 0) { + UnalignedCopy64(src, op); + src += 8; + op += 8; + len -= 8; + } +} + +static inline char* EmitLiteral(char* op, + const char* literal, + int len, + bool allow_fast_path) { + int n = len - 1; // Zero-length literals are disallowed + if (n < 60) { + // Fits in tag byte + *op++ = LITERAL | (n << 2); + + // The vast majority of copies are below 16 bytes, for which a + // call to memcpy is overkill. This fast path can sometimes + // copy up to 15 bytes too much, but that is okay in the + // main loop, since we have a bit to go on for both sides: + // + // - The input will always have kInputMarginBytes = 15 extra + // available bytes, as long as we're in the main loop, and + // if not, allow_fast_path = false. + // - The output will always have 32 spare bytes (see + // MaxCompressedLength). + if (allow_fast_path && len <= 16) { + UnalignedCopy64(literal, op); + UnalignedCopy64(literal + 8, op + 8); + return op + len; + } + } else { + // Encode in upcoming bytes + char* base = op; + int count = 0; + op++; + while (n > 0) { + *op++ = n & 0xff; + n >>= 8; + count++; + } + assert(count >= 1); + assert(count <= 4); + *base = LITERAL | ((59+count) << 2); + } + memcpy(op, literal, len); + return op + len; +} + +static inline char* EmitCopyLessThan64(char* op, size_t offset, int len) { + assert(len <= 64); + assert(len >= 4); + assert(offset < 65536); + + if ((len < 12) && (offset < 2048)) { + size_t len_minus_4 = len - 4; + assert(len_minus_4 < 8); // Must fit in 3 bits + *op++ = COPY_1_BYTE_OFFSET + ((len_minus_4) << 2) + ((offset >> 8) << 5); + *op++ = offset & 0xff; + } else { + *op++ = COPY_2_BYTE_OFFSET + ((len-1) << 2); + LittleEndian::Store16(op, offset); + op += 2; + } + return op; +} + +static inline char* EmitCopy(char* op, size_t offset, int len) { + // Emit 64 byte copies but make sure to keep at least four bytes reserved + while (len >= 68) { + op = EmitCopyLessThan64(op, offset, 64); + len -= 64; + } + + // Emit an extra 60 byte copy if have too much data to fit in one copy + if (len > 64) { + op = EmitCopyLessThan64(op, offset, 60); + len -= 60; + } + + // Emit remainder + op = EmitCopyLessThan64(op, offset, len); + return op; +} + + +bool GetUncompressedLength(const char* start, size_t n, size_t* result) { + uint32 v = 0; + const char* limit = start + n; + if (Varint::Parse32WithLimit(start, limit, &v) != NULL) { + *result = v; + return true; + } else { + return false; + } +} + +namespace internal { +uint16* WorkingMemory::GetHashTable(size_t input_size, int* table_size) { + // Use smaller hash table when input.size() is smaller, since we + // fill the table, incurring O(hash table size) overhead for + // compression, and if the input is short, we won't need that + // many hash table entries anyway. + assert(kMaxHashTableSize >= 256); + size_t htsize = 256; + while (htsize < kMaxHashTableSize && htsize < input_size) { + htsize <<= 1; + } + + uint16* table; + if (htsize <= ARRAYSIZE(small_table_)) { + table = small_table_; + } else { + if (large_table_ == NULL) { + large_table_ = new uint16[kMaxHashTableSize]; + } + table = large_table_; + } + + *table_size = htsize; + memset(table, 0, htsize * sizeof(*table)); + return table; +} +} // end namespace internal + +// For 0 <= offset <= 4, GetUint32AtOffset(GetEightBytesAt(p), offset) will +// equal UNALIGNED_LOAD32(p + offset). Motivation: On x86-64 hardware we have +// empirically found that overlapping loads such as +// UNALIGNED_LOAD32(p) ... UNALIGNED_LOAD32(p+1) ... UNALIGNED_LOAD32(p+2) +// are slower than UNALIGNED_LOAD64(p) followed by shifts and casts to uint32. +// +// We have different versions for 64- and 32-bit; ideally we would avoid the +// two functions and just inline the UNALIGNED_LOAD64 call into +// GetUint32AtOffset, but GCC (at least not as of 4.6) is seemingly not clever +// enough to avoid loading the value multiple times then. For 64-bit, the load +// is done when GetEightBytesAt() is called, whereas for 32-bit, the load is +// done at GetUint32AtOffset() time. + +#ifdef ARCH_K8 + +typedef uint64 EightBytesReference; + +static inline EightBytesReference GetEightBytesAt(const char* ptr) { + return UNALIGNED_LOAD64(ptr); +} + +static inline uint32 GetUint32AtOffset(uint64 v, int offset) { + assert(offset >= 0); + assert(offset <= 4); + return v >> (LittleEndian::IsLittleEndian() ? 8 * offset : 32 - 8 * offset); +} + +#else + +typedef const char* EightBytesReference; + +static inline EightBytesReference GetEightBytesAt(const char* ptr) { + return ptr; +} + +static inline uint32 GetUint32AtOffset(const char* v, int offset) { + assert(offset >= 0); + assert(offset <= 4); + return UNALIGNED_LOAD32(v + offset); +} + +#endif + +// Flat array compression that does not emit the "uncompressed length" +// prefix. Compresses "input" string to the "*op" buffer. +// +// REQUIRES: "input" is at most "kBlockSize" bytes long. +// REQUIRES: "op" points to an array of memory that is at least +// "MaxCompressedLength(input.size())" in size. +// REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. +// REQUIRES: "table_size" is a power of two +// +// Returns an "end" pointer into "op" buffer. +// "end - op" is the compressed size of "input". +namespace internal { +char* CompressFragment(const char* input, + size_t input_size, + char* op, + uint16* table, + const int table_size) { + // "ip" is the input pointer, and "op" is the output pointer. + const char* ip = input; + assert(input_size <= kBlockSize); + assert((table_size & (table_size - 1)) == 0); // table must be power of two + const int shift = 32 - Bits::Log2Floor(table_size); + assert(static_cast<int>(kuint32max >> shift) == table_size - 1); + const char* ip_end = input + input_size; + const char* base_ip = ip; + // Bytes in [next_emit, ip) will be emitted as literal bytes. Or + // [next_emit, ip_end) after the main loop. + const char* next_emit = ip; + + const size_t kInputMarginBytes = 15; + if (PREDICT_TRUE(input_size >= kInputMarginBytes)) { + const char* ip_limit = input + input_size - kInputMarginBytes; + + for (uint32 next_hash = Hash(++ip, shift); ; ) { + assert(next_emit < ip); + // The body of this loop calls EmitLiteral once and then EmitCopy one or + // more times. (The exception is that when we're close to exhausting + // the input we goto emit_remainder.) + // + // In the first iteration of this loop we're just starting, so + // there's nothing to copy, so calling EmitLiteral once is + // necessary. And we only start a new iteration when the + // current iteration has determined that a call to EmitLiteral will + // precede the next call to EmitCopy (if any). + // + // Step 1: Scan forward in the input looking for a 4-byte-long match. + // If we get close to exhausting the input then goto emit_remainder. + // + // Heuristic match skipping: If 32 bytes are scanned with no matches + // found, start looking only at every other byte. If 32 more bytes are + // scanned, look at every third byte, etc.. When a match is found, + // immediately go back to looking at every byte. This is a small loss + // (~5% performance, ~0.1% density) for compressible data due to more + // bookkeeping, but for non-compressible data (such as JPEG) it's a huge + // win since the compressor quickly "realizes" the data is incompressible + // and doesn't bother looking for matches everywhere. + // + // The "skip" variable keeps track of how many bytes there are since the + // last match; dividing it by 32 (ie. right-shifting by five) gives the + // number of bytes to move ahead for each iteration. + uint32 skip = 32; + + const char* next_ip = ip; + const char* candidate; + do { + ip = next_ip; + uint32 hash = next_hash; + assert(hash == Hash(ip, shift)); + uint32 bytes_between_hash_lookups = skip++ >> 5; + next_ip = ip + bytes_between_hash_lookups; + if (PREDICT_FALSE(next_ip > ip_limit)) { + goto emit_remainder; + } + next_hash = Hash(next_ip, shift); + candidate = base_ip + table[hash]; + assert(candidate >= base_ip); + assert(candidate < ip); + + table[hash] = ip - base_ip; + } while (PREDICT_TRUE(UNALIGNED_LOAD32(ip) != + UNALIGNED_LOAD32(candidate))); + + // Step 2: A 4-byte match has been found. We'll later see if more + // than 4 bytes match. But, prior to the match, input + // bytes [next_emit, ip) are unmatched. Emit them as "literal bytes." + assert(next_emit + 16 <= ip_end); + op = EmitLiteral(op, next_emit, ip - next_emit, true); + + // Step 3: Call EmitCopy, and then see if another EmitCopy could + // be our next move. Repeat until we find no match for the + // input immediately after what was consumed by the last EmitCopy call. + // + // If we exit this loop normally then we need to call EmitLiteral next, + // though we don't yet know how big the literal will be. We handle that + // by proceeding to the next iteration of the main loop. We also can exit + // this loop via goto if we get close to exhausting the input. + EightBytesReference input_bytes; + uint32 candidate_bytes = 0; + + do { + // We have a 4-byte match at ip, and no need to emit any + // "literal bytes" prior to ip. + const char* base = ip; + int matched = 4 + FindMatchLength(candidate + 4, ip + 4, ip_end); + ip += matched; + size_t offset = base - candidate; + assert(0 == memcmp(base, candidate, matched)); + op = EmitCopy(op, offset, matched); + // We could immediately start working at ip now, but to improve + // compression we first update table[Hash(ip - 1, ...)]. + const char* insert_tail = ip - 1; + next_emit = ip; + if (PREDICT_FALSE(ip >= ip_limit)) { + goto emit_remainder; + } + input_bytes = GetEightBytesAt(insert_tail); + uint32 prev_hash = HashBytes(GetUint32AtOffset(input_bytes, 0), shift); + table[prev_hash] = ip - base_ip - 1; + uint32 cur_hash = HashBytes(GetUint32AtOffset(input_bytes, 1), shift); + candidate = base_ip + table[cur_hash]; + candidate_bytes = UNALIGNED_LOAD32(candidate); + table[cur_hash] = ip - base_ip; + } while (GetUint32AtOffset(input_bytes, 1) == candidate_bytes); + + next_hash = HashBytes(GetUint32AtOffset(input_bytes, 2), shift); + ++ip; + } + } + + emit_remainder: + // Emit the remaining bytes as a literal + if (next_emit < ip_end) { + op = EmitLiteral(op, next_emit, ip_end - next_emit, false); + } + + return op; +} +} // end namespace internal + +// Signature of output types needed by decompression code. +// The decompression code is templatized on a type that obeys this +// signature so that we do not pay virtual function call overhead in +// the middle of a tight decompression loop. +// +// class DecompressionWriter { +// public: +// // Called before decompression +// void SetExpectedLength(size_t length); +// +// // Called after decompression +// bool CheckLength() const; +// +// // Called repeatedly during decompression +// bool Append(const char* ip, size_t length); +// bool AppendFromSelf(uint32 offset, size_t length); +// +// // The difference between TryFastAppend and Append is that TryFastAppend +// // is allowed to read up to <available> bytes from the input buffer, +// // whereas Append is allowed to read <length>. +// // +// // Also, TryFastAppend is allowed to return false, declining the append, +// // without it being a fatal error -- just "return false" would be +// // a perfectly legal implementation of TryFastAppend. The intention +// // is for TryFastAppend to allow a fast path in the common case of +// // a small append. +// // +// // NOTE(user): TryFastAppend must always return decline (return false) +// // if <length> is 61 or more, as in this case the literal length is not +// // decoded fully. In practice, this should not be a big problem, +// // as it is unlikely that one would implement a fast path accepting +// // this much data. +// bool TryFastAppend(const char* ip, size_t available, size_t length); +// }; + +// ----------------------------------------------------------------------- +// Lookup table for decompression code. Generated by ComputeTable() below. +// ----------------------------------------------------------------------- + +// Mapping from i in range [0,4] to a mask to extract the bottom 8*i bits +static const uint32 wordmask[] = { + 0u, 0xffu, 0xffffu, 0xffffffu, 0xffffffffu +}; + +// Data stored per entry in lookup table: +// Range Bits-used Description +// ------------------------------------ +// 1..64 0..7 Literal/copy length encoded in opcode byte +// 0..7 8..10 Copy offset encoded in opcode byte / 256 +// 0..4 11..13 Extra bytes after opcode +// +// We use eight bits for the length even though 7 would have sufficed +// because of efficiency reasons: +// (1) Extracting a byte is faster than a bit-field +// (2) It properly aligns copy offset so we do not need a <<8 +static const uint16 char_table[256] = { + 0x0001, 0x0804, 0x1001, 0x2001, 0x0002, 0x0805, 0x1002, 0x2002, + 0x0003, 0x0806, 0x1003, 0x2003, 0x0004, 0x0807, 0x1004, 0x2004, + 0x0005, 0x0808, 0x1005, 0x2005, 0x0006, 0x0809, 0x1006, 0x2006, + 0x0007, 0x080a, 0x1007, 0x2007, 0x0008, 0x080b, 0x1008, 0x2008, + 0x0009, 0x0904, 0x1009, 0x2009, 0x000a, 0x0905, 0x100a, 0x200a, + 0x000b, 0x0906, 0x100b, 0x200b, 0x000c, 0x0907, 0x100c, 0x200c, + 0x000d, 0x0908, 0x100d, 0x200d, 0x000e, 0x0909, 0x100e, 0x200e, + 0x000f, 0x090a, 0x100f, 0x200f, 0x0010, 0x090b, 0x1010, 0x2010, + 0x0011, 0x0a04, 0x1011, 0x2011, 0x0012, 0x0a05, 0x1012, 0x2012, + 0x0013, 0x0a06, 0x1013, 0x2013, 0x0014, 0x0a07, 0x1014, 0x2014, + 0x0015, 0x0a08, 0x1015, 0x2015, 0x0016, 0x0a09, 0x1016, 0x2016, + 0x0017, 0x0a0a, 0x1017, 0x2017, 0x0018, 0x0a0b, 0x1018, 0x2018, + 0x0019, 0x0b04, 0x1019, 0x2019, 0x001a, 0x0b05, 0x101a, 0x201a, + 0x001b, 0x0b06, 0x101b, 0x201b, 0x001c, 0x0b07, 0x101c, 0x201c, + 0x001d, 0x0b08, 0x101d, 0x201d, 0x001e, 0x0b09, 0x101e, 0x201e, + 0x001f, 0x0b0a, 0x101f, 0x201f, 0x0020, 0x0b0b, 0x1020, 0x2020, + 0x0021, 0x0c04, 0x1021, 0x2021, 0x0022, 0x0c05, 0x1022, 0x2022, + 0x0023, 0x0c06, 0x1023, 0x2023, 0x0024, 0x0c07, 0x1024, 0x2024, + 0x0025, 0x0c08, 0x1025, 0x2025, 0x0026, 0x0c09, 0x1026, 0x2026, + 0x0027, 0x0c0a, 0x1027, 0x2027, 0x0028, 0x0c0b, 0x1028, 0x2028, + 0x0029, 0x0d04, 0x1029, 0x2029, 0x002a, 0x0d05, 0x102a, 0x202a, + 0x002b, 0x0d06, 0x102b, 0x202b, 0x002c, 0x0d07, 0x102c, 0x202c, + 0x002d, 0x0d08, 0x102d, 0x202d, 0x002e, 0x0d09, 0x102e, 0x202e, + 0x002f, 0x0d0a, 0x102f, 0x202f, 0x0030, 0x0d0b, 0x1030, 0x2030, + 0x0031, 0x0e04, 0x1031, 0x2031, 0x0032, 0x0e05, 0x1032, 0x2032, + 0x0033, 0x0e06, 0x1033, 0x2033, 0x0034, 0x0e07, 0x1034, 0x2034, + 0x0035, 0x0e08, 0x1035, 0x2035, 0x0036, 0x0e09, 0x1036, 0x2036, + 0x0037, 0x0e0a, 0x1037, 0x2037, 0x0038, 0x0e0b, 0x1038, 0x2038, + 0x0039, 0x0f04, 0x1039, 0x2039, 0x003a, 0x0f05, 0x103a, 0x203a, + 0x003b, 0x0f06, 0x103b, 0x203b, 0x003c, 0x0f07, 0x103c, 0x203c, + 0x0801, 0x0f08, 0x103d, 0x203d, 0x1001, 0x0f09, 0x103e, 0x203e, + 0x1801, 0x0f0a, 0x103f, 0x203f, 0x2001, 0x0f0b, 0x1040, 0x2040 +}; + +// In debug mode, allow optional computation of the table at startup. +// Also, check that the decompression table is correct. +#ifndef NDEBUG +DEFINE_bool(snappy_dump_decompression_table, false, + "If true, we print the decompression table at startup."); + +static uint16 MakeEntry(unsigned int extra, + unsigned int len, + unsigned int copy_offset) { + // Check that all of the fields fit within the allocated space + assert(extra == (extra & 0x7)); // At most 3 bits + assert(copy_offset == (copy_offset & 0x7)); // At most 3 bits + assert(len == (len & 0x7f)); // At most 7 bits + return len | (copy_offset << 8) | (extra << 11); +} + +static void ComputeTable() { + uint16 dst[256]; + + // Place invalid entries in all places to detect missing initialization + int assigned = 0; + for (int i = 0; i < 256; i++) { + dst[i] = 0xffff; + } + + // Small LITERAL entries. We store (len-1) in the top 6 bits. + for (unsigned int len = 1; len <= 60; len++) { + dst[LITERAL | ((len-1) << 2)] = MakeEntry(0, len, 0); + assigned++; + } + + // Large LITERAL entries. We use 60..63 in the high 6 bits to + // encode the number of bytes of length info that follow the opcode. + for (unsigned int extra_bytes = 1; extra_bytes <= 4; extra_bytes++) { + // We set the length field in the lookup table to 1 because extra + // bytes encode len-1. + dst[LITERAL | ((extra_bytes+59) << 2)] = MakeEntry(extra_bytes, 1, 0); + assigned++; + } + + // COPY_1_BYTE_OFFSET. + // + // The tag byte in the compressed data stores len-4 in 3 bits, and + // offset/256 in 5 bits. offset%256 is stored in the next byte. + // + // This format is used for length in range [4..11] and offset in + // range [0..2047] + for (unsigned int len = 4; len < 12; len++) { + for (unsigned int offset = 0; offset < 2048; offset += 256) { + dst[COPY_1_BYTE_OFFSET | ((len-4)<<2) | ((offset>>8)<<5)] = + MakeEntry(1, len, offset>>8); + assigned++; + } + } + + // COPY_2_BYTE_OFFSET. + // Tag contains len-1 in top 6 bits, and offset in next two bytes. + for (unsigned int len = 1; len <= 64; len++) { + dst[COPY_2_BYTE_OFFSET | ((len-1)<<2)] = MakeEntry(2, len, 0); + assigned++; + } + + // COPY_4_BYTE_OFFSET. + // Tag contents len-1 in top 6 bits, and offset in next four bytes. + for (unsigned int len = 1; len <= 64; len++) { + dst[COPY_4_BYTE_OFFSET | ((len-1)<<2)] = MakeEntry(4, len, 0); + assigned++; + } + + // Check that each entry was initialized exactly once. + if (assigned != 256) { + fprintf(stderr, "ComputeTable: assigned only %d of 256\n", assigned); + abort(); + } + for (int i = 0; i < 256; i++) { + if (dst[i] == 0xffff) { + fprintf(stderr, "ComputeTable: did not assign byte %d\n", i); + abort(); + } + } + + if (FLAGS_snappy_dump_decompression_table) { + printf("static const uint16 char_table[256] = {\n "); + for (int i = 0; i < 256; i++) { + printf("0x%04x%s", + dst[i], + ((i == 255) ? "\n" : (((i%8) == 7) ? ",\n " : ", "))); + } + printf("};\n"); + } + + // Check that computed table matched recorded table + for (int i = 0; i < 256; i++) { + if (dst[i] != char_table[i]) { + fprintf(stderr, "ComputeTable: byte %d: computed (%x), expect (%x)\n", + i, static_cast<int>(dst[i]), static_cast<int>(char_table[i])); + abort(); + } + } +} +#endif /* !NDEBUG */ + +// Helper class for decompression +class SnappyDecompressor { + private: + Source* reader_; // Underlying source of bytes to decompress + const char* ip_; // Points to next buffered byte + const char* ip_limit_; // Points just past buffered bytes + uint32 peeked_; // Bytes peeked from reader (need to skip) + bool eof_; // Hit end of input without an error? + char scratch_[5]; // Temporary buffer for PeekFast() boundaries + + // Ensure that all of the tag metadata for the next tag is available + // in [ip_..ip_limit_-1]. Also ensures that [ip,ip+4] is readable even + // if (ip_limit_ - ip_ < 5). + // + // Returns true on success, false on error or end of input. + bool RefillTag(); + + public: + explicit SnappyDecompressor(Source* reader) + : reader_(reader), + ip_(NULL), + ip_limit_(NULL), + peeked_(0), + eof_(false) { + } + + ~SnappyDecompressor() { + // Advance past any bytes we peeked at from the reader + reader_->Skip(peeked_); + } + + // Returns true iff we have hit the end of the input without an error. + bool eof() const { + return eof_; + } + + // Read the uncompressed length stored at the start of the compressed data. + // On succcess, stores the length in *result and returns true. + // On failure, returns false. + bool ReadUncompressedLength(uint32* result) { + assert(ip_ == NULL); // Must not have read anything yet + // Length is encoded in 1..5 bytes + *result = 0; + uint32 shift = 0; + while (true) { + if (shift >= 32) return false; + size_t n; + const char* ip = reader_->Peek(&n); + if (n == 0) return false; + const unsigned char c = *(reinterpret_cast<const unsigned char*>(ip)); + reader_->Skip(1); + *result |= static_cast<uint32>(c & 0x7f) << shift; + if (c < 128) { + break; + } + shift += 7; + } + return true; + } + + // Process the next item found in the input. + // Returns true if successful, false on error or end of input. + template <class Writer> + void DecompressAllTags(Writer* writer) { + const char* ip = ip_; + + // We could have put this refill fragment only at the beginning of the loop. + // However, duplicating it at the end of each branch gives the compiler more + // scope to optimize the <ip_limit_ - ip> expression based on the local + // context, which overall increases speed. + #define MAYBE_REFILL() \ + if (ip_limit_ - ip < 5) { \ + ip_ = ip; \ + if (!RefillTag()) return; \ + ip = ip_; \ + } + + MAYBE_REFILL(); + for ( ;; ) { + const unsigned char c = *(reinterpret_cast<const unsigned char*>(ip++)); + + if ((c & 0x3) == LITERAL) { + size_t literal_length = (c >> 2) + 1u; + if (writer->TryFastAppend(ip, ip_limit_ - ip, literal_length)) { + assert(literal_length < 61); + ip += literal_length; + MAYBE_REFILL(); + continue; + } + if (PREDICT_FALSE(literal_length >= 61)) { + // Long literal. + const size_t literal_length_length = literal_length - 60; + literal_length = + (LittleEndian::Load32(ip) & wordmask[literal_length_length]) + 1; + ip += literal_length_length; + } + + size_t avail = ip_limit_ - ip; + while (avail < literal_length) { + if (!writer->Append(ip, avail)) return; + literal_length -= avail; + reader_->Skip(peeked_); + size_t n; + ip = reader_->Peek(&n); + avail = n; + peeked_ = avail; + if (avail == 0) return; // Premature end of input + ip_limit_ = ip + avail; + } + if (!writer->Append(ip, literal_length)) { + return; + } + ip += literal_length; + MAYBE_REFILL(); + } else { + const uint32 entry = char_table[c]; + const uint32 trailer = LittleEndian::Load32(ip) & wordmask[entry >> 11]; + const uint32 length = entry & 0xff; + ip += entry >> 11; + + // copy_offset/256 is encoded in bits 8..10. By just fetching + // those bits, we get copy_offset (since the bit-field starts at + // bit 8). + const uint32 copy_offset = entry & 0x700; + if (!writer->AppendFromSelf(copy_offset + trailer, length)) { + return; + } + MAYBE_REFILL(); + } + } + +#undef MAYBE_REFILL + } +}; + +bool SnappyDecompressor::RefillTag() { + const char* ip = ip_; + if (ip == ip_limit_) { + // Fetch a new fragment from the reader + reader_->Skip(peeked_); // All peeked bytes are used up + size_t n; + ip = reader_->Peek(&n); + peeked_ = n; + if (n == 0) { + eof_ = true; + return false; + } + ip_limit_ = ip + n; + } + + // Read the tag character + assert(ip < ip_limit_); + const unsigned char c = *(reinterpret_cast<const unsigned char*>(ip)); + const uint32 entry = char_table[c]; + const uint32 needed = (entry >> 11) + 1; // +1 byte for 'c' + assert(needed <= sizeof(scratch_)); + + // Read more bytes from reader if needed + uint32 nbuf = ip_limit_ - ip; + if (nbuf < needed) { + // Stitch together bytes from ip and reader to form the word + // contents. We store the needed bytes in "scratch_". They + // will be consumed immediately by the caller since we do not + // read more than we need. + memmove(scratch_, ip, nbuf); + reader_->Skip(peeked_); // All peeked bytes are used up + peeked_ = 0; + while (nbuf < needed) { + size_t length; + const char* src = reader_->Peek(&length); + if (length == 0) return false; + uint32 to_add = min<uint32>(needed - nbuf, length); + memcpy(scratch_ + nbuf, src, to_add); + nbuf += to_add; + reader_->Skip(to_add); + } + assert(nbuf == needed); + ip_ = scratch_; + ip_limit_ = scratch_ + needed; + } else if (nbuf < 5) { + // Have enough bytes, but move into scratch_ so that we do not + // read past end of input + memmove(scratch_, ip, nbuf); + reader_->Skip(peeked_); // All peeked bytes are used up + peeked_ = 0; + ip_ = scratch_; + ip_limit_ = scratch_ + nbuf; + } else { + // Pass pointer to buffer returned by reader_. + ip_ = ip; + } + return true; +} + +template <typename Writer> +static bool InternalUncompress(Source* r, + Writer* writer, + uint32 max_len) { + // Read the uncompressed length from the front of the compressed input + SnappyDecompressor decompressor(r); + uint32 uncompressed_len = 0; + if (!decompressor.ReadUncompressedLength(&uncompressed_len)) return false; + return InternalUncompressAllTags( + &decompressor, writer, uncompressed_len, max_len); +} + +template <typename Writer> +static bool InternalUncompressAllTags(SnappyDecompressor* decompressor, + Writer* writer, + uint32 uncompressed_len, + uint32 max_len) { + // Protect against possible DoS attack + if (static_cast<uint64>(uncompressed_len) > max_len) { + return false; + } + + writer->SetExpectedLength(uncompressed_len); + + // Process the entire input + decompressor->DecompressAllTags(writer); + return (decompressor->eof() && writer->CheckLength()); +} + +bool GetUncompressedLength(Source* source, uint32* result) { + SnappyDecompressor decompressor(source); + return decompressor.ReadUncompressedLength(result); +} + +size_t Compress(Source* reader, Sink* writer) { + size_t written = 0; + size_t N = reader->Available(); + char ulength[Varint::kMax32]; + char* p = Varint::Encode32(ulength, N); + writer->Append(ulength, p-ulength); + written += (p - ulength); + + internal::WorkingMemory wmem; + char* scratch = NULL; + char* scratch_output = NULL; + + while (N > 0) { + // Get next block to compress (without copying if possible) + size_t fragment_size; + const char* fragment = reader->Peek(&fragment_size); + assert(fragment_size != 0); // premature end of input + const size_t num_to_read = min(N, kBlockSize); + size_t bytes_read = fragment_size; + + size_t pending_advance = 0; + if (bytes_read >= num_to_read) { + // Buffer returned by reader is large enough + pending_advance = num_to_read; + fragment_size = num_to_read; + } else { + // Read into scratch buffer + if (scratch == NULL) { + // If this is the last iteration, we want to allocate N bytes + // of space, otherwise the max possible kBlockSize space. + // num_to_read contains exactly the correct value + scratch = new char[num_to_read]; + } + memcpy(scratch, fragment, bytes_read); + reader->Skip(bytes_read); + + while (bytes_read < num_to_read) { + fragment = reader->Peek(&fragment_size); + size_t n = min<size_t>(fragment_size, num_to_read - bytes_read); + memcpy(scratch + bytes_read, fragment, n); + bytes_read += n; + reader->Skip(n); + } + assert(bytes_read == num_to_read); + fragment = scratch; + fragment_size = num_to_read; + } + assert(fragment_size == num_to_read); + + // Get encoding table for compression + int table_size; + uint16* table = wmem.GetHashTable(num_to_read, &table_size); + + // Compress input_fragment and append to dest + const int max_output = MaxCompressedLength(num_to_read); + + // Need a scratch buffer for the output, in case the byte sink doesn't + // have room for us directly. + if (scratch_output == NULL) { + scratch_output = new char[max_output]; + } else { + // Since we encode kBlockSize regions followed by a region + // which is <= kBlockSize in length, a previously allocated + // scratch_output[] region is big enough for this iteration. + } + char* dest = writer->GetAppendBuffer(max_output, scratch_output); + char* end = internal::CompressFragment(fragment, fragment_size, + dest, table, table_size); + writer->Append(dest, end - dest); + written += (end - dest); + + N -= num_to_read; + reader->Skip(pending_advance); + } + + delete[] scratch; + delete[] scratch_output; + + return written; +} + +// ----------------------------------------------------------------------- +// Flat array interfaces +// ----------------------------------------------------------------------- + +// A type that writes to a flat array. +// Note that this is not a "ByteSink", but a type that matches the +// Writer template argument to SnappyDecompressor::DecompressAllTags(). +class SnappyArrayWriter { + private: + char* base_; + char* op_; + char* op_limit_; + + public: + inline explicit SnappyArrayWriter(char* dst) + : base_(dst), + op_(dst) { + } + + inline void SetExpectedLength(size_t len) { + op_limit_ = op_ + len; + } + + inline bool CheckLength() const { + return op_ == op_limit_; + } + + inline bool Append(const char* ip, size_t len) { + char* op = op_; + const size_t space_left = op_limit_ - op; + if (space_left < len) { + return false; + } + memcpy(op, ip, len); + op_ = op + len; + return true; + } + + inline bool TryFastAppend(const char* ip, size_t available, size_t len) { + char* op = op_; + const size_t space_left = op_limit_ - op; + if (len <= 16 && available >= 16 && space_left >= 16) { + // Fast path, used for the majority (about 95%) of invocations. + UnalignedCopy64(ip, op); + UnalignedCopy64(ip + 8, op + 8); + op_ = op + len; + return true; + } else { + return false; + } + } + + inline bool AppendFromSelf(size_t offset, size_t len) { + char* op = op_; + const size_t space_left = op_limit_ - op; + + if (op - base_ <= offset - 1u) { // -1u catches offset==0 + return false; + } + if (len <= 16 && offset >= 8 && space_left >= 16) { + // Fast path, used for the majority (70-80%) of dynamic invocations. + UnalignedCopy64(op - offset, op); + UnalignedCopy64(op - offset + 8, op + 8); + } else { + if (space_left >= len + kMaxIncrementCopyOverflow) { + IncrementalCopyFastPath(op - offset, op, len); + } else { + if (space_left < len) { + return false; + } + IncrementalCopy(op - offset, op, len); + } + } + + op_ = op + len; + return true; + } +}; + +bool RawUncompress(const char* compressed, size_t n, char* uncompressed) { + ByteArraySource reader(compressed, n); + return RawUncompress(&reader, uncompressed); +} + +bool RawUncompress(Source* compressed, char* uncompressed) { + SnappyArrayWriter output(uncompressed); + return InternalUncompress(compressed, &output, kuint32max); +} + +bool Uncompress(const char* compressed, size_t n, string* uncompressed) { + size_t ulength; + if (!GetUncompressedLength(compressed, n, &ulength)) { + return false; + } + // Protect against possible DoS attack + if ((static_cast<uint64>(ulength) + uncompressed->size()) > + uncompressed->max_size()) { + return false; + } + STLStringResizeUninitialized(uncompressed, ulength); + return RawUncompress(compressed, n, string_as_array(uncompressed)); +} + + +// A Writer that drops everything on the floor and just does validation +class SnappyDecompressionValidator { + private: + size_t expected_; + size_t produced_; + + public: + inline SnappyDecompressionValidator() : produced_(0) { } + inline void SetExpectedLength(size_t len) { + expected_ = len; + } + inline bool CheckLength() const { + return expected_ == produced_; + } + inline bool Append(const char* ip, size_t len) { + produced_ += len; + return produced_ <= expected_; + } + inline bool TryFastAppend(const char* ip, size_t available, size_t length) { + return false; + } + inline bool AppendFromSelf(size_t offset, size_t len) { + if (produced_ <= offset - 1u) return false; // -1u catches offset==0 + produced_ += len; + return produced_ <= expected_; + } +}; + +bool IsValidCompressedBuffer(const char* compressed, size_t n) { + ByteArraySource reader(compressed, n); + SnappyDecompressionValidator writer; + return InternalUncompress(&reader, &writer, kuint32max); +} + +void RawCompress(const char* input, + size_t input_length, + char* compressed, + size_t* compressed_length) { + ByteArraySource reader(input, input_length); + UncheckedByteArraySink writer(compressed); + Compress(&reader, &writer); + + // Compute how many bytes were added + *compressed_length = (writer.CurrentDestination() - compressed); +} + +size_t Compress(const char* input, size_t input_length, string* compressed) { + // Pre-grow the buffer to the max length of the compressed output + compressed->resize(MaxCompressedLength(input_length)); + + size_t compressed_length; + RawCompress(input, input_length, string_as_array(compressed), + &compressed_length); + compressed->resize(compressed_length); + return compressed_length; +} + + +} // end namespace snappy + diff --git a/snappy-1.1.0/snappy.h b/snappy-1.1.0/snappy.h new file mode 100644 index 0000000..03ef6ce --- /dev/null +++ b/snappy-1.1.0/snappy.h @@ -0,0 +1,163 @@ +// Copyright 2005 and onwards Google Inc. +// +// 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 Google Inc. 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 +// 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. +// +// A light-weight compression algorithm. It is designed for speed of +// compression and decompression, rather than for the utmost in space +// savings. +// +// For getting better compression ratios when you are compressing data +// with long repeated sequences or compressing data that is similar to +// other data, while still compressing fast, you might look at first +// using BMDiff and then compressing the output of BMDiff with +// Snappy. + +#ifndef UTIL_SNAPPY_SNAPPY_H__ +#define UTIL_SNAPPY_SNAPPY_H__ + +#include <stddef.h> +#include <string> + +#include "snappy-stubs-public.h" + +namespace snappy { + class Source; + class Sink; + + // ------------------------------------------------------------------------ + // Generic compression/decompression routines. + // ------------------------------------------------------------------------ + + // Compress the bytes read from "*source" and append to "*sink". Return the + // number of bytes written. + size_t Compress(Source* source, Sink* sink); + + // Find the uncompressed length of the given stream, as given by the header. + // Note that the true length could deviate from this; the stream could e.g. + // be truncated. + // + // Also note that this leaves "*source" in a state that is unsuitable for + // further operations, such as RawUncompress(). You will need to rewind + // or recreate the source yourself before attempting any further calls. + bool GetUncompressedLength(Source* source, uint32* result); + + // ------------------------------------------------------------------------ + // Higher-level string based routines (should be sufficient for most users) + // ------------------------------------------------------------------------ + + // Sets "*output" to the compressed version of "input[0,input_length-1]". + // Original contents of *output are lost. + // + // REQUIRES: "input[]" is not an alias of "*output". + size_t Compress(const char* input, size_t input_length, string* output); + + // Decompresses "compressed[0,compressed_length-1]" to "*uncompressed". + // Original contents of "*uncompressed" are lost. + // + // REQUIRES: "compressed[]" is not an alias of "*uncompressed". + // + // returns false if the message is corrupted and could not be decompressed + bool Uncompress(const char* compressed, size_t compressed_length, + string* uncompressed); + + + // ------------------------------------------------------------------------ + // Lower-level character array based routines. May be useful for + // efficiency reasons in certain circumstances. + // ------------------------------------------------------------------------ + + // REQUIRES: "compressed" must point to an area of memory that is at + // least "MaxCompressedLength(input_length)" bytes in length. + // + // Takes the data stored in "input[0..input_length]" and stores + // it in the array pointed to by "compressed". + // + // "*compressed_length" is set to the length of the compressed output. + // + // Example: + // char* output = new char[snappy::MaxCompressedLength(input_length)]; + // size_t output_length; + // RawCompress(input, input_length, output, &output_length); + // ... Process(output, output_length) ... + // delete [] output; + void RawCompress(const char* input, + size_t input_length, + char* compressed, + size_t* compressed_length); + + // Given data in "compressed[0..compressed_length-1]" generated by + // calling the Snappy::Compress routine, this routine + // stores the uncompressed data to + // uncompressed[0..GetUncompressedLength(compressed)-1] + // returns false if the message is corrupted and could not be decrypted + bool RawUncompress(const char* compressed, size_t compressed_length, + char* uncompressed); + + // Given data from the byte source 'compressed' generated by calling + // the Snappy::Compress routine, this routine stores the uncompressed + // data to + // uncompressed[0..GetUncompressedLength(compressed,compressed_length)-1] + // returns false if the message is corrupted and could not be decrypted + bool RawUncompress(Source* compressed, char* uncompressed); + + // Returns the maximal size of the compressed representation of + // input data that is "source_bytes" bytes in length; + size_t MaxCompressedLength(size_t source_bytes); + + // REQUIRES: "compressed[]" was produced by RawCompress() or Compress() + // Returns true and stores the length of the uncompressed data in + // *result normally. Returns false on parsing error. + // This operation takes O(1) time. + bool GetUncompressedLength(const char* compressed, size_t compressed_length, + size_t* result); + + // Returns true iff the contents of "compressed[]" can be uncompressed + // successfully. Does not return the uncompressed data. Takes + // time proportional to compressed_length, but is usually at least + // a factor of four faster than actual decompression. + bool IsValidCompressedBuffer(const char* compressed, + size_t compressed_length); + + // The size of a compression block. Note that many parts of the compression + // code assumes that kBlockSize <= 65536; in particular, the hash table + // can only store 16-bit offsets, and EmitCopy() also assumes the offset + // is 65535 bytes or less. Note also that if you change this, it will + // affect the framing format (see framing_format.txt). + // + // Note that there might be older data around that is compressed with larger + // block sizes, so the decompression code should not rely on the + // non-existence of long backreferences. + static const int kBlockLog = 16; + static const size_t kBlockSize = 1 << kBlockLog; + + static const int kMaxHashTableBits = 14; + static const size_t kMaxHashTableSize = 1 << kMaxHashTableBits; + +} // end namespace snappy + + +#endif // UTIL_SNAPPY_SNAPPY_H__ diff --git a/snappy-1.1.0/snappy_unittest.cc b/snappy-1.1.0/snappy_unittest.cc new file mode 100644 index 0000000..f345dc3 --- /dev/null +++ b/snappy-1.1.0/snappy_unittest.cc @@ -0,0 +1,1157 @@ +// Copyright 2005 and onwards Google Inc. +// +// 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 Google Inc. 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 +// 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. + +#include <math.h> +#include <stdlib.h> + + +#include <algorithm> +#include <string> +#include <vector> + +#include "snappy.h" +#include "snappy-internal.h" +#include "snappy-test.h" +#include "snappy-sinksource.h" + +DEFINE_int32(start_len, -1, + "Starting prefix size for testing (-1: just full file contents)"); +DEFINE_int32(end_len, -1, + "Starting prefix size for testing (-1: just full file contents)"); +DEFINE_int32(bytes, 10485760, + "How many bytes to compress/uncompress per file for timing"); + +DEFINE_bool(zlib, false, + "Run zlib compression (http://www.zlib.net)"); +DEFINE_bool(lzo, false, + "Run LZO compression (http://www.oberhumer.com/opensource/lzo/)"); +DEFINE_bool(quicklz, false, + "Run quickLZ compression (http://www.quicklz.com/)"); +DEFINE_bool(liblzf, false, + "Run libLZF compression " + "(http://www.goof.com/pcg/marc/liblzf.html)"); +DEFINE_bool(fastlz, false, + "Run FastLZ compression (http://www.fastlz.org/"); +DEFINE_bool(snappy, true, "Run snappy compression"); + + +DEFINE_bool(write_compressed, false, + "Write compressed versions of each file to <file>.comp"); +DEFINE_bool(write_uncompressed, false, + "Write uncompressed versions of each file to <file>.uncomp"); + +namespace snappy { + + +#ifdef HAVE_FUNC_MMAP + +// To test against code that reads beyond its input, this class copies a +// string to a newly allocated group of pages, the last of which +// is made unreadable via mprotect. Note that we need to allocate the +// memory with mmap(), as POSIX allows mprotect() only on memory allocated +// with mmap(), and some malloc/posix_memalign implementations expect to +// be able to read previously allocated memory while doing heap allocations. +class DataEndingAtUnreadablePage { + public: + explicit DataEndingAtUnreadablePage(const string& s) { + const size_t page_size = getpagesize(); + const size_t size = s.size(); + // Round up space for string to a multiple of page_size. + size_t space_for_string = (size + page_size - 1) & ~(page_size - 1); + alloc_size_ = space_for_string + page_size; + mem_ = mmap(NULL, alloc_size_, + PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + CHECK_NE(MAP_FAILED, mem_); + protected_page_ = reinterpret_cast<char*>(mem_) + space_for_string; + char* dst = protected_page_ - size; + memcpy(dst, s.data(), size); + data_ = dst; + size_ = size; + // Make guard page unreadable. + CHECK_EQ(0, mprotect(protected_page_, page_size, PROT_NONE)); + } + + ~DataEndingAtUnreadablePage() { + // Undo the mprotect. + CHECK_EQ(0, mprotect(protected_page_, getpagesize(), PROT_READ|PROT_WRITE)); + CHECK_EQ(0, munmap(mem_, alloc_size_)); + } + + const char* data() const { return data_; } + size_t size() const { return size_; } + + private: + size_t alloc_size_; + void* mem_; + char* protected_page_; + const char* data_; + size_t size_; +}; + +#else // HAVE_FUNC_MMAP + +// Fallback for systems without mmap. +typedef string DataEndingAtUnreadablePage; + +#endif + +enum CompressorType { + ZLIB, LZO, LIBLZF, QUICKLZ, FASTLZ, SNAPPY +}; + +const char* names[] = { + "ZLIB", "LZO", "LIBLZF", "QUICKLZ", "FASTLZ", "SNAPPY" +}; + +static size_t MinimumRequiredOutputSpace(size_t input_size, + CompressorType comp) { + switch (comp) { +#ifdef ZLIB_VERSION + case ZLIB: + return ZLib::MinCompressbufSize(input_size); +#endif // ZLIB_VERSION + +#ifdef LZO_VERSION + case LZO: + return input_size + input_size/64 + 16 + 3; +#endif // LZO_VERSION + +#ifdef LZF_VERSION + case LIBLZF: + return input_size; +#endif // LZF_VERSION + +#ifdef QLZ_VERSION_MAJOR + case QUICKLZ: + return input_size + 36000; // 36000 is used for scratch. +#endif // QLZ_VERSION_MAJOR + +#ifdef FASTLZ_VERSION + case FASTLZ: + return max(static_cast<int>(ceil(input_size * 1.05)), 66); +#endif // FASTLZ_VERSION + + case SNAPPY: + return snappy::MaxCompressedLength(input_size); + + default: + LOG(FATAL) << "Unknown compression type number " << comp; + } +} + +// Returns true if we successfully compressed, false otherwise. +// +// If compressed_is_preallocated is set, do not resize the compressed buffer. +// This is typically what you want for a benchmark, in order to not spend +// time in the memory allocator. If you do set this flag, however, +// "compressed" must be preinitialized to at least MinCompressbufSize(comp) +// number of bytes, and may contain junk bytes at the end after return. +static bool Compress(const char* input, size_t input_size, CompressorType comp, + string* compressed, bool compressed_is_preallocated) { + if (!compressed_is_preallocated) { + compressed->resize(MinimumRequiredOutputSpace(input_size, comp)); + } + + switch (comp) { +#ifdef ZLIB_VERSION + case ZLIB: { + ZLib zlib; + uLongf destlen = compressed->size(); + int ret = zlib.Compress( + reinterpret_cast<Bytef*>(string_as_array(compressed)), + &destlen, + reinterpret_cast<const Bytef*>(input), + input_size); + CHECK_EQ(Z_OK, ret); + if (!compressed_is_preallocated) { + compressed->resize(destlen); + } + return true; + } +#endif // ZLIB_VERSION + +#ifdef LZO_VERSION + case LZO: { + unsigned char* mem = new unsigned char[LZO1X_1_15_MEM_COMPRESS]; + lzo_uint destlen; + int ret = lzo1x_1_15_compress( + reinterpret_cast<const uint8*>(input), + input_size, + reinterpret_cast<uint8*>(string_as_array(compressed)), + &destlen, + mem); + CHECK_EQ(LZO_E_OK, ret); + delete[] mem; + if (!compressed_is_preallocated) { + compressed->resize(destlen); + } + break; + } +#endif // LZO_VERSION + +#ifdef LZF_VERSION + case LIBLZF: { + int destlen = lzf_compress(input, + input_size, + string_as_array(compressed), + input_size); + if (destlen == 0) { + // lzf *can* cause lots of blowup when compressing, so they + // recommend to limit outsize to insize, and just not compress + // if it's bigger. Ideally, we'd just swap input and output. + compressed->assign(input, input_size); + destlen = input_size; + } + if (!compressed_is_preallocated) { + compressed->resize(destlen); + } + break; + } +#endif // LZF_VERSION + +#ifdef QLZ_VERSION_MAJOR + case QUICKLZ: { + qlz_state_compress *state_compress = new qlz_state_compress; + int destlen = qlz_compress(input, + string_as_array(compressed), + input_size, + state_compress); + delete state_compress; + CHECK_NE(0, destlen); + if (!compressed_is_preallocated) { + compressed->resize(destlen); + } + break; + } +#endif // QLZ_VERSION_MAJOR + +#ifdef FASTLZ_VERSION + case FASTLZ: { + // Use level 1 compression since we mostly care about speed. + int destlen = fastlz_compress_level( + 1, + input, + input_size, + string_as_array(compressed)); + if (!compressed_is_preallocated) { + compressed->resize(destlen); + } + CHECK_NE(destlen, 0); + break; + } +#endif // FASTLZ_VERSION + + case SNAPPY: { + size_t destlen; + snappy::RawCompress(input, input_size, + string_as_array(compressed), + &destlen); + CHECK_LE(destlen, snappy::MaxCompressedLength(input_size)); + if (!compressed_is_preallocated) { + compressed->resize(destlen); + } + break; + } + + + default: { + return false; // the asked-for library wasn't compiled in + } + } + return true; +} + +static bool Uncompress(const string& compressed, CompressorType comp, + int size, string* output) { + switch (comp) { +#ifdef ZLIB_VERSION + case ZLIB: { + output->resize(size); + ZLib zlib; + uLongf destlen = output->size(); + int ret = zlib.Uncompress( + reinterpret_cast<Bytef*>(string_as_array(output)), + &destlen, + reinterpret_cast<const Bytef*>(compressed.data()), + compressed.size()); + CHECK_EQ(Z_OK, ret); + CHECK_EQ(static_cast<uLongf>(size), destlen); + break; + } +#endif // ZLIB_VERSION + +#ifdef LZO_VERSION + case LZO: { + output->resize(size); + lzo_uint destlen; + int ret = lzo1x_decompress( + reinterpret_cast<const uint8*>(compressed.data()), + compressed.size(), + reinterpret_cast<uint8*>(string_as_array(output)), + &destlen, + NULL); + CHECK_EQ(LZO_E_OK, ret); + CHECK_EQ(static_cast<lzo_uint>(size), destlen); + break; + } +#endif // LZO_VERSION + +#ifdef LZF_VERSION + case LIBLZF: { + output->resize(size); + int destlen = lzf_decompress(compressed.data(), + compressed.size(), + string_as_array(output), + output->size()); + if (destlen == 0) { + // This error probably means we had decided not to compress, + // and thus have stored input in output directly. + output->assign(compressed.data(), compressed.size()); + destlen = compressed.size(); + } + CHECK_EQ(destlen, size); + break; + } +#endif // LZF_VERSION + +#ifdef QLZ_VERSION_MAJOR + case QUICKLZ: { + output->resize(size); + qlz_state_decompress *state_decompress = new qlz_state_decompress; + int destlen = qlz_decompress(compressed.data(), + string_as_array(output), + state_decompress); + delete state_decompress; + CHECK_EQ(destlen, size); + break; + } +#endif // QLZ_VERSION_MAJOR + +#ifdef FASTLZ_VERSION + case FASTLZ: { + output->resize(size); + int destlen = fastlz_decompress(compressed.data(), + compressed.length(), + string_as_array(output), + size); + CHECK_EQ(destlen, size); + break; + } +#endif // FASTLZ_VERSION + + case SNAPPY: { + snappy::RawUncompress(compressed.data(), compressed.size(), + string_as_array(output)); + break; + } + + + default: { + return false; // the asked-for library wasn't compiled in + } + } + return true; +} + +static void Measure(const char* data, + size_t length, + CompressorType comp, + int repeats, + int block_size) { + // Run tests a few time and pick median running times + static const int kRuns = 5; + double ctime[kRuns]; + double utime[kRuns]; + int compressed_size = 0; + + { + // Chop the input into blocks + int num_blocks = (length + block_size - 1) / block_size; + vector<const char*> input(num_blocks); + vector<size_t> input_length(num_blocks); + vector<string> compressed(num_blocks); + vector<string> output(num_blocks); + for (int b = 0; b < num_blocks; b++) { + int input_start = b * block_size; + int input_limit = min<int>((b+1)*block_size, length); + input[b] = data+input_start; + input_length[b] = input_limit-input_start; + + // Pre-grow the output buffer so we don't measure string append time. + compressed[b].resize(MinimumRequiredOutputSpace(block_size, comp)); + } + + // First, try one trial compression to make sure the code is compiled in + if (!Compress(input[0], input_length[0], comp, &compressed[0], true)) { + LOG(WARNING) << "Skipping " << names[comp] << ": " + << "library not compiled in"; + return; + } + + for (int run = 0; run < kRuns; run++) { + CycleTimer ctimer, utimer; + + for (int b = 0; b < num_blocks; b++) { + // Pre-grow the output buffer so we don't measure string append time. + compressed[b].resize(MinimumRequiredOutputSpace(block_size, comp)); + } + + ctimer.Start(); + for (int b = 0; b < num_blocks; b++) + for (int i = 0; i < repeats; i++) + Compress(input[b], input_length[b], comp, &compressed[b], true); + ctimer.Stop(); + + // Compress once more, with resizing, so we don't leave junk + // at the end that will confuse the decompressor. + for (int b = 0; b < num_blocks; b++) { + Compress(input[b], input_length[b], comp, &compressed[b], false); + } + + for (int b = 0; b < num_blocks; b++) { + output[b].resize(input_length[b]); + } + + utimer.Start(); + for (int i = 0; i < repeats; i++) + for (int b = 0; b < num_blocks; b++) + Uncompress(compressed[b], comp, input_length[b], &output[b]); + utimer.Stop(); + + ctime[run] = ctimer.Get(); + utime[run] = utimer.Get(); + } + + compressed_size = 0; + for (int i = 0; i < compressed.size(); i++) { + compressed_size += compressed[i].size(); + } + } + + sort(ctime, ctime + kRuns); + sort(utime, utime + kRuns); + const int med = kRuns/2; + + float comp_rate = (length / ctime[med]) * repeats / 1048576.0; + float uncomp_rate = (length / utime[med]) * repeats / 1048576.0; + string x = names[comp]; + x += ":"; + string urate = (uncomp_rate >= 0) + ? StringPrintf("%.1f", uncomp_rate) + : string("?"); + printf("%-7s [b %dM] bytes %6d -> %6d %4.1f%% " + "comp %5.1f MB/s uncomp %5s MB/s\n", + x.c_str(), + block_size/(1<<20), + static_cast<int>(length), static_cast<uint32>(compressed_size), + (compressed_size * 100.0) / max<int>(1, length), + comp_rate, + urate.c_str()); +} + + +static int VerifyString(const string& input) { + string compressed; + DataEndingAtUnreadablePage i(input); + const size_t written = snappy::Compress(i.data(), i.size(), &compressed); + CHECK_EQ(written, compressed.size()); + CHECK_LE(compressed.size(), + snappy::MaxCompressedLength(input.size())); + CHECK(snappy::IsValidCompressedBuffer(compressed.data(), compressed.size())); + + string uncompressed; + DataEndingAtUnreadablePage c(compressed); + CHECK(snappy::Uncompress(c.data(), c.size(), &uncompressed)); + CHECK_EQ(uncompressed, input); + return uncompressed.size(); +} + + +// Test that data compressed by a compressor that does not +// obey block sizes is uncompressed properly. +static void VerifyNonBlockedCompression(const string& input) { + if (input.length() > snappy::kBlockSize) { + // We cannot test larger blocks than the maximum block size, obviously. + return; + } + + string prefix; + Varint::Append32(&prefix, input.size()); + + // Setup compression table + snappy::internal::WorkingMemory wmem; + int table_size; + uint16* table = wmem.GetHashTable(input.size(), &table_size); + + // Compress entire input in one shot + string compressed; + compressed += prefix; + compressed.resize(prefix.size()+snappy::MaxCompressedLength(input.size())); + char* dest = string_as_array(&compressed) + prefix.size(); + char* end = snappy::internal::CompressFragment(input.data(), input.size(), + dest, table, table_size); + compressed.resize(end - compressed.data()); + + // Uncompress into string + string uncomp_str; + CHECK(snappy::Uncompress(compressed.data(), compressed.size(), &uncomp_str)); + CHECK_EQ(uncomp_str, input); + +} + +// Expand the input so that it is at least K times as big as block size +static string Expand(const string& input) { + static const int K = 3; + string data = input; + while (data.size() < K * snappy::kBlockSize) { + data += input; + } + return data; +} + +static int Verify(const string& input) { + VLOG(1) << "Verifying input of size " << input.size(); + + // Compress using string based routines + const int result = VerifyString(input); + + + VerifyNonBlockedCompression(input); + if (!input.empty()) { + VerifyNonBlockedCompression(Expand(input)); + } + + + return result; +} + +// This test checks to ensure that snappy doesn't coredump if it gets +// corrupted data. + +static bool IsValidCompressedBuffer(const string& c) { + return snappy::IsValidCompressedBuffer(c.data(), c.size()); +} +static bool Uncompress(const string& c, string* u) { + return snappy::Uncompress(c.data(), c.size(), u); +} + +TYPED_TEST(CorruptedTest, VerifyCorrupted) { + string source = "making sure we don't crash with corrupted input"; + VLOG(1) << source; + string dest; + TypeParam uncmp; + snappy::Compress(source.data(), source.size(), &dest); + + // Mess around with the data. It's hard to simulate all possible + // corruptions; this is just one example ... + CHECK_GT(dest.size(), 3); + dest[1]--; + dest[3]++; + // this really ought to fail. + CHECK(!IsValidCompressedBuffer(TypeParam(dest))); + CHECK(!Uncompress(TypeParam(dest), &uncmp)); + + // This is testing for a security bug - a buffer that decompresses to 100k + // but we lie in the snappy header and only reserve 0 bytes of memory :) + source.resize(100000); + for (int i = 0; i < source.length(); ++i) { + source[i] = 'A'; + } + snappy::Compress(source.data(), source.size(), &dest); + dest[0] = dest[1] = dest[2] = dest[3] = 0; + CHECK(!IsValidCompressedBuffer(TypeParam(dest))); + CHECK(!Uncompress(TypeParam(dest), &uncmp)); + + if (sizeof(void *) == 4) { + // Another security check; check a crazy big length can't DoS us with an + // over-allocation. + // Currently this is done only for 32-bit builds. On 64-bit builds, + // where 3 GB might be an acceptable allocation size, Uncompress() + // attempts to decompress, and sometimes causes the test to run out of + // memory. + dest[0] = dest[1] = dest[2] = dest[3] = 0xff; + // This decodes to a really large size, i.e., about 3 GB. + dest[4] = 'k'; + CHECK(!IsValidCompressedBuffer(TypeParam(dest))); + CHECK(!Uncompress(TypeParam(dest), &uncmp)); + } else { + LOG(WARNING) << "Crazy decompression lengths not checked on 64-bit build"; + } + + // This decodes to about 2 MB; much smaller, but should still fail. + dest[0] = dest[1] = dest[2] = 0xff; + dest[3] = 0x00; + CHECK(!IsValidCompressedBuffer(TypeParam(dest))); + CHECK(!Uncompress(TypeParam(dest), &uncmp)); + + // try reading stuff in from a bad file. + for (int i = 1; i <= 3; ++i) { + string data = ReadTestDataFile(StringPrintf("baddata%d.snappy", i).c_str()); + string uncmp; + // check that we don't return a crazy length + size_t ulen; + CHECK(!snappy::GetUncompressedLength(data.data(), data.size(), &ulen) + || (ulen < (1<<20))); + uint32 ulen2; + snappy::ByteArraySource source(data.data(), data.size()); + CHECK(!snappy::GetUncompressedLength(&source, &ulen2) || + (ulen2 < (1<<20))); + CHECK(!IsValidCompressedBuffer(TypeParam(data))); + CHECK(!Uncompress(TypeParam(data), &uncmp)); + } +} + +// Helper routines to construct arbitrary compressed strings. +// These mirror the compression code in snappy.cc, but are copied +// here so that we can bypass some limitations in the how snappy.cc +// invokes these routines. +static void AppendLiteral(string* dst, const string& literal) { + if (literal.empty()) return; + int n = literal.size() - 1; + if (n < 60) { + // Fit length in tag byte + dst->push_back(0 | (n << 2)); + } else { + // Encode in upcoming bytes + char number[4]; + int count = 0; + while (n > 0) { + number[count++] = n & 0xff; + n >>= 8; + } + dst->push_back(0 | ((59+count) << 2)); + *dst += string(number, count); + } + *dst += literal; +} + +static void AppendCopy(string* dst, int offset, int length) { + while (length > 0) { + // Figure out how much to copy in one shot + int to_copy; + if (length >= 68) { + to_copy = 64; + } else if (length > 64) { + to_copy = 60; + } else { + to_copy = length; + } + length -= to_copy; + + if ((to_copy < 12) && (offset < 2048)) { + assert(to_copy-4 < 8); // Must fit in 3 bits + dst->push_back(1 | ((to_copy-4) << 2) | ((offset >> 8) << 5)); + dst->push_back(offset & 0xff); + } else if (offset < 65536) { + dst->push_back(2 | ((to_copy-1) << 2)); + dst->push_back(offset & 0xff); + dst->push_back(offset >> 8); + } else { + dst->push_back(3 | ((to_copy-1) << 2)); + dst->push_back(offset & 0xff); + dst->push_back((offset >> 8) & 0xff); + dst->push_back((offset >> 16) & 0xff); + dst->push_back((offset >> 24) & 0xff); + } + } +} + +TEST(Snappy, SimpleTests) { + Verify(""); + Verify("a"); + Verify("ab"); + Verify("abc"); + + Verify("aaaaaaa" + string(16, 'b') + string("aaaaa") + "abc"); + Verify("aaaaaaa" + string(256, 'b') + string("aaaaa") + "abc"); + Verify("aaaaaaa" + string(2047, 'b') + string("aaaaa") + "abc"); + Verify("aaaaaaa" + string(65536, 'b') + string("aaaaa") + "abc"); + Verify("abcaaaaaaa" + string(65536, 'b') + string("aaaaa") + "abc"); +} + +// Verify max blowup (lots of four-byte copies) +TEST(Snappy, MaxBlowup) { + string input; + for (int i = 0; i < 20000; i++) { + ACMRandom rnd(i); + uint32 bytes = static_cast<uint32>(rnd.Next()); + input.append(reinterpret_cast<char*>(&bytes), sizeof(bytes)); + } + for (int i = 19999; i >= 0; i--) { + ACMRandom rnd(i); + uint32 bytes = static_cast<uint32>(rnd.Next()); + input.append(reinterpret_cast<char*>(&bytes), sizeof(bytes)); + } + Verify(input); +} + +TEST(Snappy, RandomData) { + ACMRandom rnd(FLAGS_test_random_seed); + + const int num_ops = 20000; + for (int i = 0; i < num_ops; i++) { + if ((i % 1000) == 0) { + VLOG(0) << "Random op " << i << " of " << num_ops; + } + + string x; + int len = rnd.Uniform(4096); + if (i < 100) { + len = 65536 + rnd.Uniform(65536); + } + while (x.size() < len) { + int run_len = 1; + if (rnd.OneIn(10)) { + run_len = rnd.Skewed(8); + } + char c = (i < 100) ? rnd.Uniform(256) : rnd.Skewed(3); + while (run_len-- > 0 && x.size() < len) { + x += c; + } + } + + Verify(x); + } +} + +TEST(Snappy, FourByteOffset) { + // The new compressor cannot generate four-byte offsets since + // it chops up the input into 32KB pieces. So we hand-emit the + // copy manually. + + // The two fragments that make up the input string. + string fragment1 = "012345689abcdefghijklmnopqrstuvwxyz"; + string fragment2 = "some other string"; + + // How many times each fragment is emitted. + const int n1 = 2; + const int n2 = 100000 / fragment2.size(); + const int length = n1 * fragment1.size() + n2 * fragment2.size(); + + string compressed; + Varint::Append32(&compressed, length); + + AppendLiteral(&compressed, fragment1); + string src = fragment1; + for (int i = 0; i < n2; i++) { + AppendLiteral(&compressed, fragment2); + src += fragment2; + } + AppendCopy(&compressed, src.size(), fragment1.size()); + src += fragment1; + CHECK_EQ(length, src.size()); + + string uncompressed; + CHECK(snappy::IsValidCompressedBuffer(compressed.data(), compressed.size())); + CHECK(snappy::Uncompress(compressed.data(), compressed.size(), &uncompressed)); + CHECK_EQ(uncompressed, src); +} + + +static bool CheckUncompressedLength(const string& compressed, + size_t* ulength) { + const bool result1 = snappy::GetUncompressedLength(compressed.data(), + compressed.size(), + ulength); + + snappy::ByteArraySource source(compressed.data(), compressed.size()); + uint32 length; + const bool result2 = snappy::GetUncompressedLength(&source, &length); + CHECK_EQ(result1, result2); + return result1; +} + +TEST(SnappyCorruption, TruncatedVarint) { + string compressed, uncompressed; + size_t ulength; + compressed.push_back('\xf0'); + CHECK(!CheckUncompressedLength(compressed, &ulength)); + CHECK(!snappy::IsValidCompressedBuffer(compressed.data(), compressed.size())); + CHECK(!snappy::Uncompress(compressed.data(), compressed.size(), + &uncompressed)); +} + +TEST(SnappyCorruption, UnterminatedVarint) { + string compressed, uncompressed; + size_t ulength; + compressed.push_back(128); + compressed.push_back(128); + compressed.push_back(128); + compressed.push_back(128); + compressed.push_back(128); + compressed.push_back(10); + CHECK(!CheckUncompressedLength(compressed, &ulength)); + CHECK(!snappy::IsValidCompressedBuffer(compressed.data(), compressed.size())); + CHECK(!snappy::Uncompress(compressed.data(), compressed.size(), + &uncompressed)); +} + +TEST(Snappy, ReadPastEndOfBuffer) { + // Check that we do not read past end of input + + // Make a compressed string that ends with a single-byte literal + string compressed; + Varint::Append32(&compressed, 1); + AppendLiteral(&compressed, "x"); + + string uncompressed; + DataEndingAtUnreadablePage c(compressed); + CHECK(snappy::Uncompress(c.data(), c.size(), &uncompressed)); + CHECK_EQ(uncompressed, string("x")); +} + +// Check for an infinite loop caused by a copy with offset==0 +TEST(Snappy, ZeroOffsetCopy) { + const char* compressed = "\x40\x12\x00\x00"; + // \x40 Length (must be > kMaxIncrementCopyOverflow) + // \x12\x00\x00 Copy with offset==0, length==5 + char uncompressed[100]; + EXPECT_FALSE(snappy::RawUncompress(compressed, 4, uncompressed)); +} + +TEST(Snappy, ZeroOffsetCopyValidation) { + const char* compressed = "\x05\x12\x00\x00"; + // \x05 Length + // \x12\x00\x00 Copy with offset==0, length==5 + EXPECT_FALSE(snappy::IsValidCompressedBuffer(compressed, 4)); +} + + +namespace { + +int TestFindMatchLength(const char* s1, const char *s2, unsigned length) { + return snappy::internal::FindMatchLength(s1, s2, s2 + length); +} + +} // namespace + +TEST(Snappy, FindMatchLength) { + // Exercise all different code paths through the function. + // 64-bit version: + + // Hit s1_limit in 64-bit loop, hit s1_limit in single-character loop. + EXPECT_EQ(6, TestFindMatchLength("012345", "012345", 6)); + EXPECT_EQ(11, TestFindMatchLength("01234567abc", "01234567abc", 11)); + + // Hit s1_limit in 64-bit loop, find a non-match in single-character loop. + EXPECT_EQ(9, TestFindMatchLength("01234567abc", "01234567axc", 9)); + + // Same, but edge cases. + EXPECT_EQ(11, TestFindMatchLength("01234567abc!", "01234567abc!", 11)); + EXPECT_EQ(11, TestFindMatchLength("01234567abc!", "01234567abc?", 11)); + + // Find non-match at once in first loop. + EXPECT_EQ(0, TestFindMatchLength("01234567xxxxxxxx", "?1234567xxxxxxxx", 16)); + EXPECT_EQ(1, TestFindMatchLength("01234567xxxxxxxx", "0?234567xxxxxxxx", 16)); + EXPECT_EQ(4, TestFindMatchLength("01234567xxxxxxxx", "01237654xxxxxxxx", 16)); + EXPECT_EQ(7, TestFindMatchLength("01234567xxxxxxxx", "0123456?xxxxxxxx", 16)); + + // Find non-match in first loop after one block. + EXPECT_EQ(8, TestFindMatchLength("abcdefgh01234567xxxxxxxx", + "abcdefgh?1234567xxxxxxxx", 24)); + EXPECT_EQ(9, TestFindMatchLength("abcdefgh01234567xxxxxxxx", + "abcdefgh0?234567xxxxxxxx", 24)); + EXPECT_EQ(12, TestFindMatchLength("abcdefgh01234567xxxxxxxx", + "abcdefgh01237654xxxxxxxx", 24)); + EXPECT_EQ(15, TestFindMatchLength("abcdefgh01234567xxxxxxxx", + "abcdefgh0123456?xxxxxxxx", 24)); + + // 32-bit version: + + // Short matches. + EXPECT_EQ(0, TestFindMatchLength("01234567", "?1234567", 8)); + EXPECT_EQ(1, TestFindMatchLength("01234567", "0?234567", 8)); + EXPECT_EQ(2, TestFindMatchLength("01234567", "01?34567", 8)); + EXPECT_EQ(3, TestFindMatchLength("01234567", "012?4567", 8)); + EXPECT_EQ(4, TestFindMatchLength("01234567", "0123?567", 8)); + EXPECT_EQ(5, TestFindMatchLength("01234567", "01234?67", 8)); + EXPECT_EQ(6, TestFindMatchLength("01234567", "012345?7", 8)); + EXPECT_EQ(7, TestFindMatchLength("01234567", "0123456?", 8)); + EXPECT_EQ(7, TestFindMatchLength("01234567", "0123456?", 7)); + EXPECT_EQ(7, TestFindMatchLength("01234567!", "0123456??", 7)); + + // Hit s1_limit in 32-bit loop, hit s1_limit in single-character loop. + EXPECT_EQ(10, TestFindMatchLength("xxxxxxabcd", "xxxxxxabcd", 10)); + EXPECT_EQ(10, TestFindMatchLength("xxxxxxabcd?", "xxxxxxabcd?", 10)); + EXPECT_EQ(13, TestFindMatchLength("xxxxxxabcdef", "xxxxxxabcdef", 13)); + + // Same, but edge cases. + EXPECT_EQ(12, TestFindMatchLength("xxxxxx0123abc!", "xxxxxx0123abc!", 12)); + EXPECT_EQ(12, TestFindMatchLength("xxxxxx0123abc!", "xxxxxx0123abc?", 12)); + + // Hit s1_limit in 32-bit loop, find a non-match in single-character loop. + EXPECT_EQ(11, TestFindMatchLength("xxxxxx0123abc", "xxxxxx0123axc", 13)); + + // Find non-match at once in first loop. + EXPECT_EQ(6, TestFindMatchLength("xxxxxx0123xxxxxxxx", + "xxxxxx?123xxxxxxxx", 18)); + EXPECT_EQ(7, TestFindMatchLength("xxxxxx0123xxxxxxxx", + "xxxxxx0?23xxxxxxxx", 18)); + EXPECT_EQ(8, TestFindMatchLength("xxxxxx0123xxxxxxxx", + "xxxxxx0132xxxxxxxx", 18)); + EXPECT_EQ(9, TestFindMatchLength("xxxxxx0123xxxxxxxx", + "xxxxxx012?xxxxxxxx", 18)); + + // Same, but edge cases. + EXPECT_EQ(6, TestFindMatchLength("xxxxxx0123", "xxxxxx?123", 10)); + EXPECT_EQ(7, TestFindMatchLength("xxxxxx0123", "xxxxxx0?23", 10)); + EXPECT_EQ(8, TestFindMatchLength("xxxxxx0123", "xxxxxx0132", 10)); + EXPECT_EQ(9, TestFindMatchLength("xxxxxx0123", "xxxxxx012?", 10)); + + // Find non-match in first loop after one block. + EXPECT_EQ(10, TestFindMatchLength("xxxxxxabcd0123xx", + "xxxxxxabcd?123xx", 16)); + EXPECT_EQ(11, TestFindMatchLength("xxxxxxabcd0123xx", + "xxxxxxabcd0?23xx", 16)); + EXPECT_EQ(12, TestFindMatchLength("xxxxxxabcd0123xx", + "xxxxxxabcd0132xx", 16)); + EXPECT_EQ(13, TestFindMatchLength("xxxxxxabcd0123xx", + "xxxxxxabcd012?xx", 16)); + + // Same, but edge cases. + EXPECT_EQ(10, TestFindMatchLength("xxxxxxabcd0123", "xxxxxxabcd?123", 14)); + EXPECT_EQ(11, TestFindMatchLength("xxxxxxabcd0123", "xxxxxxabcd0?23", 14)); + EXPECT_EQ(12, TestFindMatchLength("xxxxxxabcd0123", "xxxxxxabcd0132", 14)); + EXPECT_EQ(13, TestFindMatchLength("xxxxxxabcd0123", "xxxxxxabcd012?", 14)); +} + +TEST(Snappy, FindMatchLengthRandom) { + const int kNumTrials = 10000; + const int kTypicalLength = 10; + ACMRandom rnd(FLAGS_test_random_seed); + + for (int i = 0; i < kNumTrials; i++) { + string s, t; + char a = rnd.Rand8(); + char b = rnd.Rand8(); + while (!rnd.OneIn(kTypicalLength)) { + s.push_back(rnd.OneIn(2) ? a : b); + t.push_back(rnd.OneIn(2) ? a : b); + } + DataEndingAtUnreadablePage u(s); + DataEndingAtUnreadablePage v(t); + int matched = snappy::internal::FindMatchLength( + u.data(), v.data(), v.data() + t.size()); + if (matched == t.size()) { + EXPECT_EQ(s, t); + } else { + EXPECT_NE(s[matched], t[matched]); + for (int j = 0; j < matched; j++) { + EXPECT_EQ(s[j], t[j]); + } + } + } +} + + +static void CompressFile(const char* fname) { + string fullinput; + file::ReadFileToString(fname, &fullinput, file::Defaults()).CheckSuccess(); + + string compressed; + Compress(fullinput.data(), fullinput.size(), SNAPPY, &compressed, false); + + file::WriteStringToFile( + string(fname).append(".comp").c_str(), compressed, + file::Defaults()).CheckSuccess(); +} + +static void UncompressFile(const char* fname) { + string fullinput; + file::ReadFileToString(fname, &fullinput, file::Defaults()).CheckSuccess(); + + size_t uncompLength; + CHECK(CheckUncompressedLength(fullinput, &uncompLength)); + + string uncompressed; + uncompressed.resize(uncompLength); + CHECK(snappy::Uncompress(fullinput.data(), fullinput.size(), &uncompressed)); + + file::WriteStringToFile( + string(fname).append(".uncomp").c_str(), uncompressed, + file::Defaults()).CheckSuccess(); +} + +static void MeasureFile(const char* fname) { + string fullinput; + file::ReadFileToString(fname, &fullinput, file::Defaults()).CheckSuccess(); + printf("%-40s :\n", fname); + + int start_len = (FLAGS_start_len < 0) ? fullinput.size() : FLAGS_start_len; + int end_len = fullinput.size(); + if (FLAGS_end_len >= 0) { + end_len = min<int>(fullinput.size(), FLAGS_end_len); + } + for (int len = start_len; len <= end_len; len++) { + const char* const input = fullinput.data(); + int repeats = (FLAGS_bytes + len) / (len + 1); + if (FLAGS_zlib) Measure(input, len, ZLIB, repeats, 1024<<10); + if (FLAGS_lzo) Measure(input, len, LZO, repeats, 1024<<10); + if (FLAGS_liblzf) Measure(input, len, LIBLZF, repeats, 1024<<10); + if (FLAGS_quicklz) Measure(input, len, QUICKLZ, repeats, 1024<<10); + if (FLAGS_fastlz) Measure(input, len, FASTLZ, repeats, 1024<<10); + if (FLAGS_snappy) Measure(input, len, SNAPPY, repeats, 4096<<10); + + // For block-size based measurements + if (0 && FLAGS_snappy) { + Measure(input, len, SNAPPY, repeats, 8<<10); + Measure(input, len, SNAPPY, repeats, 16<<10); + Measure(input, len, SNAPPY, repeats, 32<<10); + Measure(input, len, SNAPPY, repeats, 64<<10); + Measure(input, len, SNAPPY, repeats, 256<<10); + Measure(input, len, SNAPPY, repeats, 1024<<10); + } + } +} + +static struct { + const char* label; + const char* filename; +} files[] = { + { "html", "html" }, + { "urls", "urls.10K" }, + { "jpg", "house.jpg" }, + { "pdf", "mapreduce-osdi-1.pdf" }, + { "html4", "html_x_4" }, + { "cp", "cp.html" }, + { "c", "fields.c" }, + { "lsp", "grammar.lsp" }, + { "xls", "kennedy.xls" }, + { "txt1", "alice29.txt" }, + { "txt2", "asyoulik.txt" }, + { "txt3", "lcet10.txt" }, + { "txt4", "plrabn12.txt" }, + { "bin", "ptt5" }, + { "sum", "sum" }, + { "man", "xargs.1" }, + { "pb", "geo.protodata" }, + { "gaviota", "kppkn.gtb" }, +}; + +static void BM_UFlat(int iters, int arg) { + StopBenchmarkTiming(); + + // Pick file to process based on "arg" + CHECK_GE(arg, 0); + CHECK_LT(arg, ARRAYSIZE(files)); + string contents = ReadTestDataFile(files[arg].filename); + + string zcontents; + snappy::Compress(contents.data(), contents.size(), &zcontents); + char* dst = new char[contents.size()]; + + SetBenchmarkBytesProcessed(static_cast<int64>(iters) * + static_cast<int64>(contents.size())); + SetBenchmarkLabel(files[arg].label); + StartBenchmarkTiming(); + while (iters-- > 0) { + CHECK(snappy::RawUncompress(zcontents.data(), zcontents.size(), dst)); + } + StopBenchmarkTiming(); + + delete[] dst; +} +BENCHMARK(BM_UFlat)->DenseRange(0, 17); + +static void BM_UValidate(int iters, int arg) { + StopBenchmarkTiming(); + + // Pick file to process based on "arg" + CHECK_GE(arg, 0); + CHECK_LT(arg, ARRAYSIZE(files)); + string contents = ReadTestDataFile(files[arg].filename); + + string zcontents; + snappy::Compress(contents.data(), contents.size(), &zcontents); + + SetBenchmarkBytesProcessed(static_cast<int64>(iters) * + static_cast<int64>(contents.size())); + SetBenchmarkLabel(files[arg].label); + StartBenchmarkTiming(); + while (iters-- > 0) { + CHECK(snappy::IsValidCompressedBuffer(zcontents.data(), zcontents.size())); + } + StopBenchmarkTiming(); +} +BENCHMARK(BM_UValidate)->DenseRange(0, 4); + + +static void BM_ZFlat(int iters, int arg) { + StopBenchmarkTiming(); + + // Pick file to process based on "arg" + CHECK_GE(arg, 0); + CHECK_LT(arg, ARRAYSIZE(files)); + string contents = ReadTestDataFile(files[arg].filename); + + char* dst = new char[snappy::MaxCompressedLength(contents.size())]; + + SetBenchmarkBytesProcessed(static_cast<int64>(iters) * + static_cast<int64>(contents.size())); + StartBenchmarkTiming(); + + size_t zsize = 0; + while (iters-- > 0) { + snappy::RawCompress(contents.data(), contents.size(), dst, &zsize); + } + StopBenchmarkTiming(); + const double compression_ratio = + static_cast<double>(zsize) / std::max<size_t>(1, contents.size()); + SetBenchmarkLabel(StringPrintf("%s (%.2f %%)", + files[arg].label, 100.0 * compression_ratio)); + VLOG(0) << StringPrintf("compression for %s: %zd -> %zd bytes", + files[arg].label, contents.size(), zsize); + delete[] dst; +} +BENCHMARK(BM_ZFlat)->DenseRange(0, 17); + + +} // namespace snappy + + +int main(int argc, char** argv) { + InitGoogle(argv[0], &argc, &argv, true); + File::Init(); + RunSpecifiedBenchmarks(); + + + if (argc >= 2) { + for (int arg = 1; arg < argc; arg++) { + if (FLAGS_write_compressed) { + CompressFile(argv[arg]); + } else if (FLAGS_write_uncompressed) { + UncompressFile(argv[arg]); + } else { + MeasureFile(argv[arg]); + } + } + return 0; + } + + return RUN_ALL_TESTS(); +} diff --git a/snappy-1.1.0/testdata/alice29.txt b/snappy-1.1.0/testdata/alice29.txt new file mode 100644 index 0000000..7033655 --- /dev/null +++ b/snappy-1.1.0/testdata/alice29.txt @@ -0,0 +1,3609 @@ +
+
+
+
+ ALICE'S ADVENTURES IN WONDERLAND
+
+ Lewis Carroll
+
+ THE MILLENNIUM FULCRUM EDITION 2.9
+
+
+
+
+ CHAPTER I
+
+ Down the Rabbit-Hole
+
+
+ Alice was beginning to get very tired of sitting by her sister
+on the bank, and of having nothing to do: once or twice she had
+peeped into the book her sister was reading, but it had no
+pictures or conversations in it, `and what is the use of a book,'
+thought Alice `without pictures or conversation?'
+
+ So she was considering in her own mind (as well as she could,
+for the hot day made her feel very sleepy and stupid), whether
+the pleasure of making a daisy-chain would be worth the trouble
+of getting up and picking the daisies, when suddenly a White
+Rabbit with pink eyes ran close by her.
+
+ There was nothing so VERY remarkable in that; nor did Alice
+think it so VERY much out of the way to hear the Rabbit say to
+itself, `Oh dear! Oh dear! I shall be late!' (when she thought
+it over afterwards, it occurred to her that she ought to have
+wondered at this, but at the time it all seemed quite natural);
+but when the Rabbit actually TOOK A WATCH OUT OF ITS WAISTCOAT-
+POCKET, and looked at it, and then hurried on, Alice started to
+her feet, for it flashed across her mind that she had never
+before seen a rabbit with either a waistcoat-pocket, or a watch to
+take out of it, and burning with curiosity, she ran across the
+field after it, and fortunately was just in time to see it pop
+down a large rabbit-hole under the hedge.
+
+ In another moment down went Alice after it, never once
+considering how in the world she was to get out again.
+
+ The rabbit-hole went straight on like a tunnel for some way,
+and then dipped suddenly down, so suddenly that Alice had not a
+moment to think about stopping herself before she found herself
+falling down a very deep well.
+
+ Either the well was very deep, or she fell very slowly, for she
+had plenty of time as she went down to look about her and to
+wonder what was going to happen next. First, she tried to look
+down and make out what she was coming to, but it was too dark to
+see anything; then she looked at the sides of the well, and
+noticed that they were filled with cupboards and book-shelves;
+here and there she saw maps and pictures hung upon pegs. She
+took down a jar from one of the shelves as she passed; it was
+labelled `ORANGE MARMALADE', but to her great disappointment it
+was empty: she did not like to drop the jar for fear of killing
+somebody, so managed to put it into one of the cupboards as she
+fell past it.
+
+ `Well!' thought Alice to herself, `after such a fall as this, I
+shall think nothing of tumbling down stairs! How brave they'll
+all think me at home! Why, I wouldn't say anything about it,
+even if I fell off the top of the house!' (Which was very likely
+true.)
+
+ Down, down, down. Would the fall NEVER come to an end! `I
+wonder how many miles I've fallen by this time?' she said aloud.
+`I must be getting somewhere near the centre of the earth. Let
+me see: that would be four thousand miles down, I think--' (for,
+you see, Alice had learnt several things of this sort in her
+lessons in the schoolroom, and though this was not a VERY good
+opportunity for showing off her knowledge, as there was no one to
+listen to her, still it was good practice to say it over) `--yes,
+that's about the right distance--but then I wonder what Latitude
+or Longitude I've got to?' (Alice had no idea what Latitude was,
+or Longitude either, but thought they were nice grand words to
+say.)
+
+ Presently she began again. `I wonder if I shall fall right
+THROUGH the earth! How funny it'll seem to come out among the
+people that walk with their heads downward! The Antipathies, I
+think--' (she was rather glad there WAS no one listening, this
+time, as it didn't sound at all the right word) `--but I shall
+have to ask them what the name of the country is, you know.
+Please, Ma'am, is this New Zealand or Australia?' (and she tried
+to curtsey as she spoke--fancy CURTSEYING as you're falling
+through the air! Do you think you could manage it?) `And what
+an ignorant little girl she'll think me for asking! No, it'll
+never do to ask: perhaps I shall see it written up somewhere.'
+
+ Down, down, down. There was nothing else to do, so Alice soon
+began talking again. `Dinah'll miss me very much to-night, I
+should think!' (Dinah was the cat.) `I hope they'll remember
+her saucer of milk at tea-time. Dinah my dear! I wish you were
+down here with me! There are no mice in the air, I'm afraid, but
+you might catch a bat, and that's very like a mouse, you know.
+But do cats eat bats, I wonder?' And here Alice began to get
+rather sleepy, and went on saying to herself, in a dreamy sort of
+way, `Do cats eat bats? Do cats eat bats?' and sometimes, `Do
+bats eat cats?' for, you see, as she couldn't answer either
+question, it didn't much matter which way she put it. She felt
+that she was dozing off, and had just begun to dream that she
+was walking hand in hand with Dinah, and saying to her very
+earnestly, `Now, Dinah, tell me the truth: did you ever eat a
+bat?' when suddenly, thump! thump! down she came upon a heap of
+sticks and dry leaves, and the fall was over.
+
+ Alice was not a bit hurt, and she jumped up on to her feet in a
+moment: she looked up, but it was all dark overhead; before her
+was another long passage, and the White Rabbit was still in
+sight, hurrying down it. There was not a moment to be lost:
+away went Alice like the wind, and was just in time to hear it
+say, as it turned a corner, `Oh my ears and whiskers, how late
+it's getting!' She was close behind it when she turned the
+corner, but the Rabbit was no longer to be seen: she found
+herself in a long, low hall, which was lit up by a row of lamps
+hanging from the roof.
+
+ There were doors all round the hall, but they were all locked;
+and when Alice had been all the way down one side and up the
+other, trying every door, she walked sadly down the middle,
+wondering how she was ever to get out again.
+
+ Suddenly she came upon a little three-legged table, all made of
+solid glass; there was nothing on it except a tiny golden key,
+and Alice's first thought was that it might belong to one of the
+doors of the hall; but, alas! either the locks were too large, or
+the key was too small, but at any rate it would not open any of
+them. However, on the second time round, she came upon a low
+curtain she had not noticed before, and behind it was a little
+door about fifteen inches high: she tried the little golden key
+in the lock, and to her great delight it fitted!
+
+ Alice opened the door and found that it led into a small
+passage, not much larger than a rat-hole: she knelt down and
+looked along the passage into the loveliest garden you ever saw.
+How she longed to get out of that dark hall, and wander about
+among those beds of bright flowers and those cool fountains, but
+she could not even get her head though the doorway; `and even if
+my head would go through,' thought poor Alice, `it would be of
+very little use without my shoulders. Oh, how I wish
+I could shut up like a telescope! I think I could, if I only
+know how to begin.' For, you see, so many out-of-the-way things
+had happened lately, that Alice had begun to think that very few
+things indeed were really impossible.
+
+ There seemed to be no use in waiting by the little door, so she
+went back to the table, half hoping she might find another key on
+it, or at any rate a book of rules for shutting people up like
+telescopes: this time she found a little bottle on it, (`which
+certainly was not here before,' said Alice,) and round the neck
+of the bottle was a paper label, with the words `DRINK ME'
+beautifully printed on it in large letters.
+
+ It was all very well to say `Drink me,' but the wise little
+Alice was not going to do THAT in a hurry. `No, I'll look
+first,' she said, `and see whether it's marked "poison" or not';
+for she had read several nice little histories about children who
+had got burnt, and eaten up by wild beasts and other unpleasant
+things, all because they WOULD not remember the simple rules
+their friends had taught them: such as, that a red-hot poker
+will burn you if you hold it too long; and that if you cut your
+finger VERY deeply with a knife, it usually bleeds; and she had
+never forgotten that, if you drink much from a bottle marked
+`poison,' it is almost certain to disagree with you, sooner or
+later.
+
+ However, this bottle was NOT marked `poison,' so Alice ventured
+to taste it, and finding it very nice, (it had, in fact, a sort
+of mixed flavour of cherry-tart, custard, pine-apple, roast
+turkey, toffee, and hot buttered toast,) she very soon finished
+it off.
+
+ * * * * * * *
+
+ * * * * * *
+
+ * * * * * * *
+
+ `What a curious feeling!' said Alice; `I must be shutting up
+like a telescope.'
+
+ And so it was indeed: she was now only ten inches high, and
+her face brightened up at the thought that she was now the right
+size for going though the little door into that lovely garden.
+First, however, she waited for a few minutes to see if she was
+going to shrink any further: she felt a little nervous about
+this; `for it might end, you know,' said Alice to herself, `in my
+going out altogether, like a candle. I wonder what I should be
+like then?' And she tried to fancy what the flame of a candle is
+like after the candle is blown out, for she could not remember
+ever having seen such a thing.
+
+ After a while, finding that nothing more happened, she decided
+on going into the garden at once; but, alas for poor Alice! when
+she got to the door, she found he had forgotten the little golden
+key, and when she went back to the table for it, she found she
+could not possibly reach it: she could see it quite plainly
+through the glass, and she tried her best to climb up one of the
+legs of the table, but it was too slippery; and when she had
+tired herself out with trying, the poor little thing sat down and
+cried.
+
+ `Come, there's no use in crying like that!' said Alice to
+herself, rather sharply; `I advise you to leave off this minute!'
+She generally gave herself very good advice, (though she very
+seldom followed it), and sometimes she scolded herself so
+severely as to bring tears into her eyes; and once she remembered
+trying to box her own ears for having cheated herself in a game
+of croquet she was playing against herself, for this curious
+child was very fond of pretending to be two people. `But it's no
+use now,' thought poor Alice, `to pretend to be two people! Why,
+there's hardly enough of me left to make ONE respectable
+person!'
+
+ Soon her eye fell on a little glass box that was lying under
+the table: she opened it, and found in it a very small cake, on
+which the words `EAT ME' were beautifully marked in currants.
+`Well, I'll eat it,' said Alice, `and if it makes me grow larger,
+I can reach the key; and if it makes me grow smaller, I can creep
+under the door; so either way I'll get into the garden, and I
+don't care which happens!'
+
+ She ate a little bit, and said anxiously to herself, `Which
+way? Which way?', holding her hand on the top of her head to
+feel which way it was growing, and she was quite surprised to
+find that she remained the same size: to be sure, this generally
+happens when one eats cake, but Alice had got so much into the
+way of expecting nothing but out-of-the-way things to happen,
+that it seemed quite dull and stupid for life to go on in the
+common way.
+
+ So she set to work, and very soon finished off the cake.
+
+ * * * * * * *
+
+ * * * * * *
+
+ * * * * * * *
+
+
+
+
+ CHAPTER II
+
+ The Pool of Tears
+
+
+ `Curiouser and curiouser!' cried Alice (she was so much
+surprised, that for the moment she quite forgot how to speak good
+English); `now I'm opening out like the largest telescope that
+ever was! Good-bye, feet!' (for when she looked down at her
+feet, they seemed to be almost out of sight, they were getting so
+far off). `Oh, my poor little feet, I wonder who will put on
+your shoes and stockings for you now, dears? I'm sure _I_ shan't
+be able! I shall be a great deal too far off to trouble myself
+about you: you must manage the best way you can; --but I must be
+kind to them,' thought Alice, `or perhaps they won't walk the
+way I want to go! Let me see: I'll give them a new pair of
+boots every Christmas.'
+
+ And she went on planning to herself how she would manage it.
+`They must go by the carrier,' she thought; `and how funny it'll
+seem, sending presents to one's own feet! And how odd the
+directions will look!
+
+ ALICE'S RIGHT FOOT, ESQ.
+ HEARTHRUG,
+ NEAR THE FENDER,
+ (WITH ALICE'S LOVE).
+
+Oh dear, what nonsense I'm talking!'
+
+ Just then her head struck against the roof of the hall: in
+fact she was now more than nine feet high, and she at once took
+up the little golden key and hurried off to the garden door.
+
+ Poor Alice! It was as much as she could do, lying down on one
+side, to look through into the garden with one eye; but to get
+through was more hopeless than ever: she sat down and began to
+cry again.
+
+ `You ought to be ashamed of yourself,' said Alice, `a great
+girl like you,' (she might well say this), `to go on crying in
+this way! Stop this moment, I tell you!' But she went on all
+the same, shedding gallons of tears, until there was a large pool
+all round her, about four inches deep and reaching half down the
+hall.
+
+ After a time she heard a little pattering of feet in the
+distance, and she hastily dried her eyes to see what was coming.
+It was the White Rabbit returning, splendidly dressed, with a
+pair of white kid gloves in one hand and a large fan in the
+other: he came trotting along in a great hurry, muttering to
+himself as he came, `Oh! the Duchess, the Duchess! Oh! won't she
+be savage if I've kept her waiting!' Alice felt so desperate
+that she was ready to ask help of any one; so, when the Rabbit
+came near her, she began, in a low, timid voice, `If you please,
+sir--' The Rabbit started violently, dropped the white kid
+gloves and the fan, and skurried away into the darkness as hard
+as he could go.
+
+ Alice took up the fan and gloves, and, as the hall was very
+hot, she kept fanning herself all the time she went on talking:
+`Dear, dear! How queer everything is to-day! And yesterday
+things went on just as usual. I wonder if I've been changed in
+the night? Let me think: was I the same when I got up this
+morning? I almost think I can remember feeling a little
+different. But if I'm not the same, the next question is, Who in
+the world am I? Ah, THAT'S the great puzzle!' And she began
+thinking over all the children she knew that were of the same age
+as herself, to see if she could have been changed for any of
+them.
+
+ `I'm sure I'm not Ada,' she said, `for her hair goes in such
+long ringlets, and mine doesn't go in ringlets at all; and I'm
+sure I can't be Mabel, for I know all sorts of things, and she,
+oh! she knows such a very little! Besides, SHE'S she, and I'm I,
+and--oh dear, how puzzling it all is! I'll try if I know all the
+things I used to know. Let me see: four times five is twelve,
+and four times six is thirteen, and four times seven is--oh dear!
+I shall never get to twenty at that rate! However, the
+Multiplication Table doesn't signify: let's try Geography.
+London is the capital of Paris, and Paris is the capital of Rome,
+and Rome--no, THAT'S all wrong, I'm certain! I must have been
+changed for Mabel! I'll try and say "How doth the little--"'
+and she crossed her hands on her lap as if she were saying lessons,
+and began to repeat it, but her voice sounded hoarse and
+strange, and the words did not come the same as they used to do:--
+
+ `How doth the little crocodile
+ Improve his shining tail,
+ And pour the waters of the Nile
+ On every golden scale!
+
+ `How cheerfully he seems to grin,
+ How neatly spread his claws,
+ And welcome little fishes in
+ With gently smiling jaws!'
+
+ `I'm sure those are not the right words,' said poor Alice, and
+her eyes filled with tears again as she went on, `I must be Mabel
+after all, and I shall have to go and live in that poky little
+house, and have next to no toys to play with, and oh! ever so
+many lessons to learn! No, I've made up my mind about it; if I'm
+Mabel, I'll stay down here! It'll be no use their putting their
+heads down and saying "Come up again, dear!" I shall only look
+up and say "Who am I then? Tell me that first, and then, if I
+like being that person, I'll come up: if not, I'll stay down
+here till I'm somebody else"--but, oh dear!' cried Alice, with a
+sudden burst of tears, `I do wish they WOULD put their heads
+down! I am so VERY tired of being all alone here!'
+
+ As she said this she looked down at her hands, and was
+surprised to see that she had put on one of the Rabbit's little
+white kid gloves while she was talking. `How CAN I have done
+that?' she thought. `I must be growing small again.' She got up
+and went to the table to measure herself by it, and found that,
+as nearly as she could guess, she was now about two feet high,
+and was going on shrinking rapidly: she soon found out that the
+cause of this was the fan she was holding, and she dropped it
+hastily, just in time to avoid shrinking away altogether.
+
+`That WAS a narrow escape!' said Alice, a good deal frightened at
+the sudden change, but very glad to find herself still in
+existence; `and now for the garden!' and she ran with all speed
+back to the little door: but, alas! the little door was shut
+again, and the little golden key was lying on the glass table as
+before, `and things are worse than ever,' thought the poor child,
+`for I never was so small as this before, never! And I declare
+it's too bad, that it is!'
+
+ As she said these words her foot slipped, and in another
+moment, splash! she was up to her chin in salt water. He first
+idea was that she had somehow fallen into the sea, `and in that
+case I can go back by railway,' she said to herself. (Alice had
+been to the seaside once in her life, and had come to the general
+conclusion, that wherever you go to on the English coast you find
+a number of bathing machines in the sea, some children digging in
+the sand with wooden spades, then a row of lodging houses, and
+behind them a railway station.) However, she soon made out that
+she was in the pool of tears which she had wept when she was nine
+feet high.
+
+ `I wish I hadn't cried so much!' said Alice, as she swam about,
+trying to find her way out. `I shall be punished for it now, I
+suppose, by being drowned in my own tears! That WILL be a queer
+thing, to be sure! However, everything is queer to-day.'
+
+ Just then she heard something splashing about in the pool a
+little way off, and she swam nearer to make out what it was: at
+first she thought it must be a walrus or hippopotamus, but then
+she remembered how small she was now, and she soon made out that
+it was only a mouse that had slipped in like herself.
+
+ `Would it be of any use, now,' thought Alice, `to speak to this
+mouse? Everything is so out-of-the-way down here, that I should
+think very likely it can talk: at any rate, there's no harm in
+trying.' So she began: `O Mouse, do you know the way out of
+this pool? I am very tired of swimming about here, O Mouse!'
+(Alice thought this must be the right way of speaking to a mouse:
+she had never done such a thing before, but she remembered having
+seen in her brother's Latin Grammar, `A mouse--of a mouse--to a
+mouse--a mouse--O mouse!' The Mouse looked at her rather
+inquisitively, and seemed to her to wink with one of its little
+eyes, but it said nothing.
+
+ `Perhaps it doesn't understand English,' thought Alice; `I
+daresay it's a French mouse, come over with William the
+Conqueror.' (For, with all her knowledge of history, Alice had
+no very clear notion how long ago anything had happened.) So she
+began again: `Ou est ma chatte?' which was the first sentence in
+her French lesson-book. The Mouse gave a sudden leap out of the
+water, and seemed to quiver all over with fright. `Oh, I beg
+your pardon!' cried Alice hastily, afraid that she had hurt the
+poor animal's feelings. `I quite forgot you didn't like cats.'
+
+ `Not like cats!' cried the Mouse, in a shrill, passionate
+voice. `Would YOU like cats if you were me?'
+
+ `Well, perhaps not,' said Alice in a soothing tone: `don't be
+angry about it. And yet I wish I could show you our cat Dinah:
+I think you'd take a fancy to cats if you could only see her.
+She is such a dear quiet thing,' Alice went on, half to herself,
+as she swam lazily about in the pool, `and she sits purring so
+nicely by the fire, licking her paws and washing her face--and
+she is such a nice soft thing to nurse--and she's such a capital
+one for catching mice--oh, I beg your pardon!' cried Alice again,
+for this time the Mouse was bristling all over, and she felt
+certain it must be really offended. `We won't talk about her any
+more if you'd rather not.'
+
+ `We indeed!' cried the Mouse, who was trembling down to the end
+of his tail. `As if I would talk on such a subject! Our family
+always HATED cats: nasty, low, vulgar things! Don't let me hear
+the name again!'
+
+ `I won't indeed!' said Alice, in a great hurry to change the
+subject of conversation. `Are you--are you fond--of--of dogs?'
+The Mouse did not answer, so Alice went on eagerly: `There is
+such a nice little dog near our house I should like to show you!
+A little bright-eyed terrier, you know, with oh, such long curly
+brown hair! And it'll fetch things when you throw them, and
+it'll sit up and beg for its dinner, and all sorts of things--I
+can't remember half of them--and it belongs to a farmer, you
+know, and he says it's so useful, it's worth a hundred pounds!
+He says it kills all the rats and--oh dear!' cried Alice in a
+sorrowful tone, `I'm afraid I've offended it again!' For the
+Mouse was swimming away from her as hard as it could go, and
+making quite a commotion in the pool as it went.
+
+ So she called softly after it, `Mouse dear! Do come back
+again, and we won't talk about cats or dogs either, if you don't
+like them!' When the Mouse heard this, it turned round and swam
+slowly back to her: its face was quite pale (with passion, Alice
+thought), and it said in a low trembling voice, `Let us get to
+the shore, and then I'll tell you my history, and you'll
+understand why it is I hate cats and dogs.'
+
+ It was high time to go, for the pool was getting quite crowded
+with the birds and animals that had fallen into it: there were a
+Duck and a Dodo, a Lory and an Eaglet, and several other curious
+creatures. Alice led the way, and the whole party swam to the
+shore.
+
+
+
+ CHAPTER III
+
+ A Caucus-Race and a Long Tale
+
+
+ They were indeed a queer-looking party that assembled on the
+bank--the birds with draggled feathers, the animals with their
+fur clinging close to them, and all dripping wet, cross, and
+uncomfortable.
+
+ The first question of course was, how to get dry again: they
+had a consultation about this, and after a few minutes it seemed
+quite natural to Alice to find herself talking familiarly with
+them, as if she had known them all her life. Indeed, she had
+quite a long argument with the Lory, who at last turned sulky,
+and would only say, `I am older than you, and must know better';
+and this Alice would not allow without knowing how old it was,
+and, as the Lory positively refused to tell its age, there was no
+more to be said.
+
+ At last the Mouse, who seemed to be a person of authority among
+them, called out, `Sit down, all of you, and listen to me! I'LL
+soon make you dry enough!' They all sat down at once, in a large
+ring, with the Mouse in the middle. Alice kept her eyes
+anxiously fixed on it, for she felt sure she would catch a bad
+cold if she did not get dry very soon.
+
+ `Ahem!' said the Mouse with an important air, `are you all ready?
+This is the driest thing I know. Silence all round, if you please!
+"William the Conqueror, whose cause was favoured by the pope, was
+soon submitted to by the English, who wanted leaders, and had been
+of late much accustomed to usurpation and conquest. Edwin and
+Morcar, the earls of Mercia and Northumbria--"'
+
+ `Ugh!' said the Lory, with a shiver.
+
+ `I beg your pardon!' said the Mouse, frowning, but very
+politely: `Did you speak?'
+
+ `Not I!' said the Lory hastily.
+
+ `I thought you did,' said the Mouse. `--I proceed. "Edwin and
+Morcar, the earls of Mercia and Northumbria, declared for him:
+and even Stigand, the patriotic archbishop of Canterbury, found
+it advisable--"'
+
+ `Found WHAT?' said the Duck.
+
+ `Found IT,' the Mouse replied rather crossly: `of course you
+know what "it" means.'
+
+ `I know what "it" means well enough, when I find a thing,' said
+the Duck: `it's generally a frog or a worm. The question is,
+what did the archbishop find?'
+
+ The Mouse did not notice this question, but hurriedly went on,
+`"--found it advisable to go with Edgar Atheling to meet William
+and offer him the crown. William's conduct at first was
+moderate. But the insolence of his Normans--" How are you
+getting on now, my dear?' it continued, turning to Alice as it
+spoke.
+
+ `As wet as ever,' said Alice in a melancholy tone: `it doesn't
+seem to dry me at all.'
+
+ `In that case,' said the Dodo solemnly, rising to its feet, `I
+move that the meeting adjourn, for the immediate adoption of more
+energetic remedies--'
+
+ `Speak English!' said the Eaglet. `I don't know the meaning of
+half those long words, and, what's more, I don't believe you do
+either!' And the Eaglet bent down its head to hide a smile:
+some of the other birds tittered audibly.
+
+ `What I was going to say,' said the Dodo in an offended tone,
+`was, that the best thing to get us dry would be a Caucus-race.'
+
+ `What IS a Caucus-race?' said Alice; not that she wanted much
+to know, but the Dodo had paused as if it thought that SOMEBODY
+ought to speak, and no one else seemed inclined to say anything.
+
+ `Why,' said the Dodo, `the best way to explain it is to do it.'
+(And, as you might like to try the thing yourself, some winter
+day, I will tell you how the Dodo managed it.)
+
+ First it marked out a race-course, in a sort of circle, (`the
+exact shape doesn't matter,' it said,) and then all the party
+were placed along the course, here and there. There was no `One,
+two, three, and away,' but they began running when they liked,
+and left off when they liked, so that it was not easy to know
+when the race was over. However, when they had been running half
+an hour or so, and were quite dry again, the Dodo suddenly called
+out `The race is over!' and they all crowded round it, panting,
+and asking, `But who has won?'
+
+ This question the Dodo could not answer without a great deal of
+thought, and it sat for a long time with one finger pressed upon
+its forehead (the position in which you usually see Shakespeare,
+in the pictures of him), while the rest waited in silence. At
+last the Dodo said, `EVERYBODY has won, and all must have
+prizes.'
+
+ `But who is to give the prizes?' quite a chorus of voices
+asked.
+
+ `Why, SHE, of course,' said the Dodo, pointing to Alice with
+one finger; and the whole party at once crowded round her,
+calling out in a confused way, `Prizes! Prizes!'
+
+ Alice had no idea what to do, and in despair she put her hand
+in her pocket, and pulled out a box of comfits, (luckily the salt
+water had not got into it), and handed them round as prizes.
+There was exactly one a-piece all round.
+
+ `But she must have a prize herself, you know,' said the Mouse.
+
+ `Of course,' the Dodo replied very gravely. `What else have
+you got in your pocket?' he went on, turning to Alice.
+
+ `Only a thimble,' said Alice sadly.
+
+ `Hand it over here,' said the Dodo.
+
+ Then they all crowded round her once more, while the Dodo
+solemnly presented the thimble, saying `We beg your acceptance of
+this elegant thimble'; and, when it had finished this short
+speech, they all cheered.
+
+ Alice thought the whole thing very absurd, but they all looked
+so grave that she did not dare to laugh; and, as she could not
+think of anything to say, she simply bowed, and took the thimble,
+looking as solemn as she could.
+
+ The next thing was to eat the comfits: this caused some noise
+and confusion, as the large birds complained that they could not
+taste theirs, and the small ones choked and had to be patted on
+the back. However, it was over at last, and they sat down again
+in a ring, and begged the Mouse to tell them something more.
+
+ `You promised to tell me your history, you know,' said Alice,
+`and why it is you hate--C and D,' she added in a whisper, half
+afraid that it would be offended again.
+
+ `Mine is a long and a sad tale!' said the Mouse, turning to
+Alice, and sighing.
+
+ `It IS a long tail, certainly,' said Alice, looking down with
+wonder at the Mouse's tail; `but why do you call it sad?' And
+she kept on puzzling about it while the Mouse was speaking, so
+that her idea of the tale was something like this:--
+
+ `Fury said to a
+ mouse, That he
+ met in the
+ house,
+ "Let us
+ both go to
+ law: I will
+ prosecute
+ YOU. --Come,
+ I'll take no
+ denial; We
+ must have a
+ trial: For
+ really this
+ morning I've
+ nothing
+ to do."
+ Said the
+ mouse to the
+ cur, "Such
+ a trial,
+ dear Sir,
+ With
+ no jury
+ or judge,
+ would be
+ wasting
+ our
+ breath."
+ "I'll be
+ judge, I'll
+ be jury,"
+ Said
+ cunning
+ old Fury:
+ "I'll
+ try the
+ whole
+ cause,
+ and
+ condemn
+ you
+ to
+ death."'
+
+
+ `You are not attending!' said the Mouse to Alice severely.
+`What are you thinking of?'
+
+ `I beg your pardon,' said Alice very humbly: `you had got to
+the fifth bend, I think?'
+
+ `I had NOT!' cried the Mouse, sharply and very angrily.
+
+ `A knot!' said Alice, always ready to make herself useful, and
+looking anxiously about her. `Oh, do let me help to undo it!'
+
+ `I shall do nothing of the sort,' said the Mouse, getting up
+and walking away. `You insult me by talking such nonsense!'
+
+ `I didn't mean it!' pleaded poor Alice. `But you're so easily
+offended, you know!'
+
+ The Mouse only growled in reply.
+
+ `Please come back and finish your story!' Alice called after
+it; and the others all joined in chorus, `Yes, please do!' but
+the Mouse only shook its head impatiently, and walked a little
+quicker.
+
+ `What a pity it wouldn't stay!' sighed the Lory, as soon as it
+was quite out of sight; and an old Crab took the opportunity of
+saying to her daughter `Ah, my dear! Let this be a lesson to you
+never to lose YOUR temper!' `Hold your tongue, Ma!' said the
+young Crab, a little snappishly. `You're enough to try the
+patience of an oyster!'
+
+ `I wish I had our Dinah here, I know I do!' said Alice aloud,
+addressing nobody in particular. `She'd soon fetch it back!'
+
+ `And who is Dinah, if I might venture to ask the question?'
+said the Lory.
+
+ Alice replied eagerly, for she was always ready to talk about
+her pet: `Dinah's our cat. And she's such a capital one for
+catching mice you can't think! And oh, I wish you could see her
+after the birds! Why, she'll eat a little bird as soon as look
+at it!'
+
+ This speech caused a remarkable sensation among the party.
+Some of the birds hurried off at once: one the old Magpie began
+wrapping itself up very carefully, remarking, `I really must be
+getting home; the night-air doesn't suit my throat!' and a Canary
+called out in a trembling voice to its children, `Come away, my
+dears! It's high time you were all in bed!' On various pretexts
+they all moved off, and Alice was soon left alone.
+
+ `I wish I hadn't mentioned Dinah!' she said to herself in a
+melancholy tone. `Nobody seems to like her, down here, and I'm
+sure she's the best cat in the world! Oh, my dear Dinah! I
+wonder if I shall ever see you any more!' And here poor Alice
+began to cry again, for she felt very lonely and low-spirited.
+In a little while, however, she again heard a little pattering of
+footsteps in the distance, and she looked up eagerly, half hoping
+that the Mouse had changed his mind, and was coming back to
+finish his story.
+
+
+
+ CHAPTER IV
+
+ The Rabbit Sends in a Little Bill
+
+
+ It was the White Rabbit, trotting slowly back again, and
+looking anxiously about as it went, as if it had lost something;
+and she heard it muttering to itself `The Duchess! The Duchess!
+Oh my dear paws! Oh my fur and whiskers! She'll get me
+executed, as sure as ferrets are ferrets! Where CAN I have
+dropped them, I wonder?' Alice guessed in a moment that it was
+looking for the fan and the pair of white kid gloves, and she
+very good-naturedly began hunting about for them, but they were
+nowhere to be seen--everything seemed to have changed since her
+swim in the pool, and the great hall, with the glass table and
+the little door, had vanished completely.
+
+ Very soon the Rabbit noticed Alice, as she went hunting about,
+and called out to her in an angry tone, `Why, Mary Ann, what ARE
+you doing out here? Run home this moment, and fetch me a pair of
+gloves and a fan! Quick, now!' And Alice was so much frightened
+that she ran off at once in the direction it pointed to, without
+trying to explain the mistake it had made.
+
+ `He took me for his housemaid,' she said to herself as she ran.
+`How surprised he'll be when he finds out who I am! But I'd
+better take him his fan and gloves--that is, if I can find them.'
+As she said this, she came upon a neat little house, on the door
+of which was a bright brass plate with the name `W. RABBIT'
+engraved upon it. She went in without knocking, and hurried
+upstairs, in great fear lest she should meet the real Mary Ann,
+and be turned out of the house before she had found the fan and
+gloves.
+
+ `How queer it seems,' Alice said to herself, `to be going
+messages for a rabbit! I suppose Dinah'll be sending me on
+messages next!' And she began fancying the sort of thing that
+would happen: `"Miss Alice! Come here directly, and get ready
+for your walk!" "Coming in a minute, nurse! But I've got to see
+that the mouse doesn't get out." Only I don't think,' Alice went
+on, `that they'd let Dinah stop in the house if it began ordering
+people about like that!'
+
+ By this time she had found her way into a tidy little room with
+a table in the window, and on it (as she had hoped) a fan and two
+or three pairs of tiny white kid gloves: she took up the fan and
+a pair of the gloves, and was just going to leave the room, when
+her eye fell upon a little bottle that stood near the looking-
+glass. There was no label this time with the words `DRINK ME,'
+but nevertheless she uncorked it and put it to her lips. `I know
+SOMETHING interesting is sure to happen,' she said to herself,
+`whenever I eat or drink anything; so I'll just see what this
+bottle does. I do hope it'll make me grow large again, for
+really I'm quite tired of being such a tiny little thing!'
+
+ It did so indeed, and much sooner than she had expected:
+before she had drunk half the bottle, she found her head pressing
+against the ceiling, and had to stoop to save her neck from being
+broken. She hastily put down the bottle, saying to herself
+`That's quite enough--I hope I shan't grow any more--As it is, I
+can't get out at the door--I do wish I hadn't drunk quite so
+much!'
+
+ Alas! it was too late to wish that! She went on growing, and
+growing, and very soon had to kneel down on the floor: in
+another minute there was not even room for this, and she tried
+the effect of lying down with one elbow against the door, and the
+other arm curled round her head. Still she went on growing, and,
+as a last resource, she put one arm out of the window, and one
+foot up the chimney, and said to herself `Now I can do no more,
+whatever happens. What WILL become of me?'
+
+ Luckily for Alice, the little magic bottle had now had its full
+effect, and she grew no larger: still it was very uncomfortable,
+and, as there seemed to be no sort of chance of her ever getting
+out of the room again, no wonder she felt unhappy.
+
+ `It was much pleasanter at home,' thought poor Alice, `when one
+wasn't always growing larger and smaller, and being ordered about
+by mice and rabbits. I almost wish I hadn't gone down that
+rabbit-hole--and yet--and yet--it's rather curious, you know,
+this sort of life! I do wonder what CAN have happened to me!
+When I used to read fairy-tales, I fancied that kind of thing
+never happened, and now here I am in the middle of one! There
+ought to be a book written about me, that there ought! And when
+I grow up, I'll write one--but I'm grown up now,' she added in a
+sorrowful tone; `at least there's no room to grow up any more
+HERE.'
+
+ `But then,' thought Alice, `shall I NEVER get any older than I
+am now? That'll be a comfort, one way--never to be an old woman-
+-but then--always to have lessons to learn! Oh, I shouldn't like
+THAT!'
+
+ `Oh, you foolish Alice!' she answered herself. `How can you
+learn lessons in here? Why, there's hardly room for YOU, and no
+room at all for any lesson-books!'
+
+ And so she went on, taking first one side and then the other,
+and making quite a conversation of it altogether; but after a few
+minutes she heard a voice outside, and stopped to listen.
+
+ `Mary Ann! Mary Ann!' said the voice. `Fetch me my gloves
+this moment!' Then came a little pattering of feet on the
+stairs. Alice knew it was the Rabbit coming to look for her, and
+she trembled till she shook the house, quite forgetting that she
+was now about a thousand times as large as the Rabbit, and had no
+reason to be afraid of it.
+
+ Presently the Rabbit came up to the door, and tried to open it;
+but, as the door opened inwards, and Alice's elbow was pressed
+hard against it, that attempt proved a failure. Alice heard it
+say to itself `Then I'll go round and get in at the window.'
+
+ `THAT you won't' thought Alice, and, after waiting till she
+fancied she heard the Rabbit just under the window, she suddenly
+spread out her hand, and made a snatch in the air. She did not
+get hold of anything, but she heard a little shriek and a fall,
+and a crash of broken glass, from which she concluded that it was
+just possible it had fallen into a cucumber-frame, or something
+of the sort.
+
+ Next came an angry voice--the Rabbit's--`Pat! Pat! Where are
+you?' And then a voice she had never heard before, `Sure then
+I'm here! Digging for apples, yer honour!'
+
+ `Digging for apples, indeed!' said the Rabbit angrily. `Here!
+Come and help me out of THIS!' (Sounds of more broken glass.)
+
+ `Now tell me, Pat, what's that in the window?'
+
+ `Sure, it's an arm, yer honour!' (He pronounced it `arrum.')
+
+ `An arm, you goose! Who ever saw one that size? Why, it
+fills the whole window!'
+
+ `Sure, it does, yer honour: but it's an arm for all that.'
+
+ `Well, it's got no business there, at any rate: go and take it
+away!'
+
+ There was a long silence after this, and Alice could only hear
+whispers now and then; such as, `Sure, I don't like it, yer
+honour, at all, at all!' `Do as I tell you, you coward!' and at
+last she spread out her hand again, and made another snatch in
+the air. This time there were TWO little shrieks, and more
+sounds of broken glass. `What a number of cucumber-frames there
+must be!' thought Alice. `I wonder what they'll do next! As for
+pulling me out of the window, I only wish they COULD! I'm sure I
+don't want to stay in here any longer!'
+
+ She waited for some time without hearing anything more: at
+last came a rumbling of little cartwheels, and the sound of a
+good many voice all talking together: she made out the words:
+`Where's the other ladder?--Why, I hadn't to bring but one;
+Bill's got the other--Bill! fetch it here, lad!--Here, put 'em up
+at this corner--No, tie 'em together first--they don't reach half
+high enough yet--Oh! they'll do well enough; don't be particular-
+-Here, Bill! catch hold of this rope--Will the roof bear?--Mind
+that loose slate--Oh, it's coming down! Heads below!' (a loud
+crash)--`Now, who did that?--It was Bill, I fancy--Who's to go
+down the chimney?--Nay, I shan't! YOU do it!--That I won't,
+then!--Bill's to go down--Here, Bill! the master says you're to
+go down the chimney!'
+
+ `Oh! So Bill's got to come down the chimney, has he?' said
+Alice to herself. `Shy, they seem to put everything upon Bill!
+I wouldn't be in Bill's place for a good deal: this fireplace is
+narrow, to be sure; but I THINK I can kick a little!'
+
+ She drew her foot as far down the chimney as she could, and
+waited till she heard a little animal (she couldn't guess of what
+sort it was) scratching and scrambling about in the chimney close
+above her: then, saying to herself `This is Bill,' she gave one
+sharp kick, and waited to see what would happen next.
+
+ The first thing she heard was a general chorus of `There goes
+Bill!' then the Rabbit's voice along--`Catch him, you by the
+hedge!' then silence, and then another confusion of voices--`Hold
+up his head--Brandy now--Don't choke him--How was it, old fellow?
+What happened to you? Tell us all about it!'
+
+ Last came a little feeble, squeaking voice, (`That's Bill,'
+thought Alice,) `Well, I hardly know--No more, thank ye; I'm
+better now--but I'm a deal too flustered to tell you--all I know
+is, something comes at me like a Jack-in-the-box, and up I goes
+like a sky-rocket!'
+
+ `So you did, old fellow!' said the others.
+
+ `We must burn the house down!' said the Rabbit's voice; and
+Alice called out as loud as she could, `If you do. I'll set
+Dinah at you!'
+
+ There was a dead silence instantly, and Alice thought to
+herself, `I wonder what they WILL do next! If they had any
+sense, they'd take the roof off.' After a minute or two, they
+began moving about again, and Alice heard the Rabbit say, `A
+barrowful will do, to begin with.'
+
+ `A barrowful of WHAT?' thought Alice; but she had not long to
+doubt, for the next moment a shower of little pebbles came
+rattling in at the window, and some of them hit her in the face.
+`I'll put a stop to this,' she said to herself, and shouted out,
+`You'd better not do that again!' which produced another dead
+silence.
+
+ Alice noticed with some surprise that the pebbles were all
+turning into little cakes as they lay on the floor, and a bright
+idea came into her head. `If I eat one of these cakes,' she
+thought, `it's sure to make SOME change in my size; and as it
+can't possibly make me larger, it must make me smaller, I
+suppose.'
+
+ So she swallowed one of the cakes, and was delighted to find
+that she began shrinking directly. As soon as she was small
+enough to get through the door, she ran out of the house, and
+found quite a crowd of little animals and birds waiting outside.
+The poor little Lizard, Bill, was in the middle, being held up by
+two guinea-pigs, who were giving it something out of a bottle.
+They all made a rush at Alice the moment she appeared; but she
+ran off as hard as she could, and soon found herself safe in a
+thick wood.
+
+ `The first thing I've got to do,' said Alice to herself, as she
+wandered about in the wood, `is to grow to my right size again;
+and the second thing is to find my way into that lovely garden.
+I think that will be the best plan.'
+
+ It sounded an excellent plan, no doubt, and very neatly and
+simply arranged; the only difficulty was, that she had not the
+smallest idea how to set about it; and while she was peering
+about anxiously among the trees, a little sharp bark just over
+her head made her look up in a great hurry.
+
+ An enormous puppy was looking down at her with large round
+eyes, and feebly stretching out one paw, trying to touch her.
+`Poor little thing!' said Alice, in a coaxing tone, and she tried
+hard to whistle to it; but she was terribly frightened all the
+time at the thought that it might be hungry, in which case it
+would be very likely to eat her up in spite of all her coaxing.
+
+ Hardly knowing what she did, she picked up a little bit of
+stick, and held it out to the puppy; whereupon the puppy jumped
+into the air off all its feet at once, with a yelp of delight,
+and rushed at the stick, and made believe to worry it; then Alice
+dodged behind a great thistle, to keep herself from being run
+over; and the moment she appeared on the other side, the puppy
+made another rush at the stick, and tumbled head over heels in
+its hurry to get hold of it; then Alice, thinking it was very
+like having a game of play with a cart-horse, and expecting every
+moment to be trampled under its feet, ran round the thistle
+again; then the puppy began a series of short charges at the
+stick, running a very little way forwards each time and a long
+way back, and barking hoarsely all the while, till at last it sat
+down a good way off, panting, with its tongue hanging out of its
+mouth, and its great eyes half shut.
+
+ This seemed to Alice a good opportunity for making her escape;
+so she set off at once, and ran till she was quite tired and out
+of breath, and till the puppy's bark sounded quite faint in the
+distance.
+
+ `And yet what a dear little puppy it was!' said Alice, as she
+leant against a buttercup to rest herself, and fanned herself
+with one of the leaves: `I should have liked teaching it tricks
+very much, if--if I'd only been the right size to do it! Oh
+dear! I'd nearly forgotten that I've got to grow up again! Let
+me see--how IS it to be managed? I suppose I ought to eat or
+drink something or other; but the great question is, what?'
+
+ The great question certainly was, what? Alice looked all round
+her at the flowers and the blades of grass, but she did not see
+anything that looked like the right thing to eat or drink under
+the circumstances. There was a large mushroom growing near her,
+about the same height as herself; and when she had looked under
+it, and on both sides of it, and behind it, it occurred to her
+that she might as well look and see what was on the top of it.
+
+ She stretched herself up on tiptoe, and peeped over the edge of
+the mushroom, and her eyes immediately met those of a large
+caterpillar, that was sitting on the top with its arms folded,
+quietly smoking a long hookah, and taking not the smallest notice
+of her or of anything else.
+
+
+
+ CHAPTER V
+
+ Advice from a Caterpillar
+
+
+ The Caterpillar and Alice looked at each other for some time in
+silence: at last the Caterpillar took the hookah out of its
+mouth, and addressed her in a languid, sleepy voice.
+
+ `Who are YOU?' said the Caterpillar.
+
+ This was not an encouraging opening for a conversation. Alice
+replied, rather shyly, `I--I hardly know, sir, just at present--
+at least I know who I WAS when I got up this morning, but I think
+I must have been changed several times since then.'
+
+ `What do you mean by that?' said the Caterpillar sternly.
+`Explain yourself!'
+
+ `I can't explain MYSELF, I'm afraid, sir' said Alice, `because
+I'm not myself, you see.'
+
+ `I don't see,' said the Caterpillar.
+
+ `I'm afraid I can't put it more clearly,' Alice replied very
+politely, `for I can't understand it myself to begin with; and
+being so many different sizes in a day is very confusing.'
+
+ `It isn't,' said the Caterpillar.
+
+ `Well, perhaps you haven't found it so yet,' said Alice; `but
+when you have to turn into a chrysalis--you will some day, you
+know--and then after that into a butterfly, I should think you'll
+feel it a little queer, won't you?'
+
+ `Not a bit,' said the Caterpillar.
+
+ `Well, perhaps your feelings may be different,' said Alice;
+`all I know is, it would feel very queer to ME.'
+
+ `You!' said the Caterpillar contemptuously. `Who are YOU?'
+
+ Which brought them back again to the beginning of the
+conversation. Alice felt a little irritated at the Caterpillar's
+making such VERY short remarks, and she drew herself up and said,
+very gravely, `I think, you ought to tell me who YOU are, first.'
+
+ `Why?' said the Caterpillar.
+
+ Here was another puzzling question; and as Alice could not
+think of any good reason, and as the Caterpillar seemed to be in
+a VERY unpleasant state of mind, she turned away.
+
+ `Come back!' the Caterpillar called after her. `I've something
+important to say!'
+
+ This sounded promising, certainly: Alice turned and came back
+again.
+
+ `Keep your temper,' said the Caterpillar.
+
+ `Is that all?' said Alice, swallowing down her anger as well as
+she could.
+
+ `No,' said the Caterpillar.
+
+ Alice thought she might as well wait, as she had nothing else
+to do, and perhaps after all it might tell her something worth
+hearing. For some minutes it puffed away without speaking, but
+at last it unfolded its arms, took the hookah out of its mouth
+again, and said, `So you think you're changed, do you?'
+
+ `I'm afraid I am, sir,' said Alice; `I can't remember things as
+I used--and I don't keep the same size for ten minutes together!'
+
+ `Can't remember WHAT things?' said the Caterpillar.
+
+ `Well, I've tried to say "HOW DOTH THE LITTLE BUSY BEE," but it
+all came different!' Alice replied in a very melancholy voice.
+
+ `Repeat, "YOU ARE OLD, FATHER WILLIAM,"' said the Caterpillar.
+
+ Alice folded her hands, and began:--
+
+ `You are old, Father William,' the young man said,
+ `And your hair has become very white;
+ And yet you incessantly stand on your head--
+ Do you think, at your age, it is right?'
+
+ `In my youth,' Father William replied to his son,
+ `I feared it might injure the brain;
+ But, now that I'm perfectly sure I have none,
+ Why, I do it again and again.'
+
+ `You are old,' said the youth, `as I mentioned before,
+ And have grown most uncommonly fat;
+ Yet you turned a back-somersault in at the door--
+ Pray, what is the reason of that?'
+
+ `In my youth,' said the sage, as he shook his grey locks,
+ `I kept all my limbs very supple
+ By the use of this ointment--one shilling the box--
+ Allow me to sell you a couple?'
+
+ `You are old,' said the youth, `and your jaws are too weak
+ For anything tougher than suet;
+ Yet you finished the goose, with the bones and the beak--
+ Pray how did you manage to do it?'
+
+ `In my youth,' said his father, `I took to the law,
+ And argued each case with my wife;
+ And the muscular strength, which it gave to my jaw,
+ Has lasted the rest of my life.'
+
+ `You are old,' said the youth, `one would hardly suppose
+ That your eye was as steady as ever;
+ Yet you balanced an eel on the end of your nose--
+ What made you so awfully clever?'
+
+ `I have answered three questions, and that is enough,'
+ Said his father; `don't give yourself airs!
+ Do you think I can listen all day to such stuff?
+ Be off, or I'll kick you down stairs!'
+
+
+ `That is not said right,' said the Caterpillar.
+
+ `Not QUITE right, I'm afraid,' said Alice, timidly; `some of the
+words have got altered.'
+
+ `It is wrong from beginning to end,' said the Caterpillar
+decidedly, and there was silence for some minutes.
+
+ The Caterpillar was the first to speak.
+
+ `What size do you want to be?' it asked.
+
+ `Oh, I'm not particular as to size,' Alice hastily replied;
+`only one doesn't like changing so often, you know.'
+
+ `I DON'T know,' said the Caterpillar.
+
+ Alice said nothing: she had never been so much contradicted in
+her life before, and she felt that she was losing her temper.
+
+ `Are you content now?' said the Caterpillar.
+
+ `Well, I should like to be a LITTLE larger, sir, if you
+wouldn't mind,' said Alice: `three inches is such a wretched
+height to be.'
+
+ `It is a very good height indeed!' said the Caterpillar
+angrily, rearing itself upright as it spoke (it was exactly three
+inches high).
+
+ `But I'm not used to it!' pleaded poor Alice in a piteous tone.
+And she thought of herself, `I wish the creatures wouldn't be so
+easily offended!'
+
+ `You'll get used to it in time,' said the Caterpillar; and it
+put the hookah into its mouth and began smoking again.
+
+ This time Alice waited patiently until it chose to speak again.
+In a minute or two the Caterpillar took the hookah out of its
+mouth and yawned once or twice, and shook itself. Then it got
+down off the mushroom, and crawled away in the grass, merely
+remarking as it went, `One side will make you grow taller, and
+the other side will make you grow shorter.'
+
+ `One side of WHAT? The other side of WHAT?' thought Alice to
+herself.
+
+ `Of the mushroom,' said the Caterpillar, just as if she had
+asked it aloud; and in another moment it was out of sight.
+
+ Alice remained looking thoughtfully at the mushroom for a
+minute, trying to make out which were the two sides of it; and as
+it was perfectly round, she found this a very difficult question.
+However, at last she stretched her arms round it as far as they
+would go, and broke off a bit of the edge with each hand.
+
+ `And now which is which?' she said to herself, and nibbled a
+little of the right-hand bit to try the effect: the next moment
+she felt a violent blow underneath her chin: it had struck her
+foot!
+
+ She was a good deal frightened by this very sudden change, but
+she felt that there was no time to be lost, as she was shrinking
+rapidly; so she set to work at once to eat some of the other bit.
+Her chin was pressed so closely against her foot, that there was
+hardly room to open her mouth; but she did it at last, and
+managed to swallow a morsel of the lefthand bit.
+
+
+ * * * * * * *
+
+ * * * * * *
+
+ * * * * * * *
+
+ `Come, my head's free at last!' said Alice in a tone of
+delight, which changed into alarm in another moment, when she
+found that her shoulders were nowhere to be found: all she could
+see, when she looked down, was an immense length of neck, which
+seemed to rise like a stalk out of a sea of green leaves that lay
+far below her.
+
+ `What CAN all that green stuff be?' said Alice. `And where
+HAVE my shoulders got to? And oh, my poor hands, how is it I
+can't see you?' She was moving them about as she spoke, but no
+result seemed to follow, except a little shaking among the
+distant green leaves.
+
+ As there seemed to be no chance of getting her hands up to her
+head, she tried to get her head down to them, and was delighted
+to find that her neck would bend about easily in any direction,
+like a serpent. She had just succeeded in curving it down into a
+graceful zigzag, and was going to dive in among the leaves, which
+she found to be nothing but the tops of the trees under which she
+had been wandering, when a sharp hiss made her draw back in a
+hurry: a large pigeon had flown into her face, and was beating
+her violently with its wings.
+
+ `Serpent!' screamed the Pigeon.
+
+ `I'm NOT a serpent!' said Alice indignantly. `Let me alone!'
+
+ `Serpent, I say again!' repeated the Pigeon, but in a more
+subdued tone, and added with a kind of sob, `I've tried every
+way, and nothing seems to suit them!'
+
+ `I haven't the least idea what you're talking about,' said
+Alice.
+
+ `I've tried the roots of trees, and I've tried banks, and I've
+tried hedges,' the Pigeon went on, without attending to her; `but
+those serpents! There's no pleasing them!'
+
+ Alice was more and more puzzled, but she thought there was no
+use in saying anything more till the Pigeon had finished.
+
+ `As if it wasn't trouble enough hatching the eggs,' said the
+Pigeon; `but I must be on the look-out for serpents night and
+day! Why, I haven't had a wink of sleep these three weeks!'
+
+ `I'm very sorry you've been annoyed,' said Alice, who was
+beginning to see its meaning.
+
+ `And just as I'd taken the highest tree in the wood,' continued
+the Pigeon, raising its voice to a shriek, `and just as I was
+thinking I should be free of them at last, they must needs come
+wriggling down from the sky! Ugh, Serpent!'
+
+ `But I'm NOT a serpent, I tell you!' said Alice. `I'm a--I'm
+a--'
+
+ `Well! WHAT are you?' said the Pigeon. `I can see you're
+trying to invent something!'
+
+ `I--I'm a little girl,' said Alice, rather doubtfully, as she
+remembered the number of changes she had gone through that day.
+
+ `A likely story indeed!' said the Pigeon in a tone of the
+deepest contempt. `I've seen a good many little girls in my
+time, but never ONE with such a neck as that! No, no! You're a
+serpent; and there's no use denying it. I suppose you'll be
+telling me next that you never tasted an egg!'
+
+ `I HAVE tasted eggs, certainly,' said Alice, who was a very
+truthful child; `but little girls eat eggs quite as much as
+serpents do, you know.'
+
+ `I don't believe it,' said the Pigeon; `but if they do, why
+then they're a kind of serpent, that's all I can say.'
+
+ This was such a new idea to Alice, that she was quite silent
+for a minute or two, which gave the Pigeon the opportunity of
+adding, `You're looking for eggs, I know THAT well enough; and
+what does it matter to me whether you're a little girl or a
+serpent?'
+
+ `It matters a good deal to ME,' said Alice hastily; `but I'm
+not looking for eggs, as it happens; and if I was, I shouldn't
+want YOURS: I don't like them raw.'
+
+ `Well, be off, then!' said the Pigeon in a sulky tone, as it
+settled down again into its nest. Alice crouched down among the
+trees as well as she could, for her neck kept getting entangled
+among the branches, and every now and then she had to stop and
+untwist it. After a while she remembered that she still held the
+pieces of mushroom in her hands, and she set to work very
+carefully, nibbling first at one and then at the other, and
+growing sometimes taller and sometimes shorter, until she had
+succeeded in bringing herself down to her usual height.
+
+ It was so long since she had been anything near the right size,
+that it felt quite strange at first; but she got used to it in a
+few minutes, and began talking to herself, as usual. `Come,
+there's half my plan done now! How puzzling all these changes
+are! I'm never sure what I'm going to be, from one minute to
+another! However, I've got back to my right size: the next
+thing is, to get into that beautiful garden--how IS that to be
+done, I wonder?' As she said this, she came suddenly upon an
+open place, with a little house in it about four feet high.
+`Whoever lives there,' thought Alice, `it'll never do to come
+upon them THIS size: why, I should frighten them out of their
+wits!' So she began nibbling at the righthand bit again, and did
+not venture to go near the house till she had brought herself
+down to nine inches high.
+
+
+
+ CHAPTER VI
+
+ Pig and Pepper
+
+
+ For a minute or two she stood looking at the house, and
+wondering what to do next, when suddenly a footman in livery came
+running out of the wood--(she considered him to be a footman
+because he was in livery: otherwise, judging by his face only,
+she would have called him a fish)--and rapped loudly at the door
+with his knuckles. It was opened by another footman in livery,
+with a round face, and large eyes like a frog; and both footmen,
+Alice noticed, had powdered hair that curled all over their
+heads. She felt very curious to know what it was all about, and
+crept a little way out of the wood to listen.
+
+ The Fish-Footman began by producing from under his arm a great
+letter, nearly as large as himself, and this he handed over to
+the other, saying, in a solemn tone, `For the Duchess. An
+invitation from the Queen to play croquet.' The Frog-Footman
+repeated, in the same solemn tone, only changing the order of the
+words a little, `From the Queen. An invitation for the Duchess
+to play croquet.'
+
+ Then they both bowed low, and their curls got entangled
+together.
+
+ Alice laughed so much at this, that she had to run back into
+the wood for fear of their hearing her; and when she next peeped
+out the Fish-Footman was gone, and the other was sitting on the
+ground near the door, staring stupidly up into the sky.
+
+ Alice went timidly up to the door, and knocked.
+
+ `There's no sort of use in knocking,' said the Footman, `and
+that for two reasons. First, because I'm on the same side of the
+door as you are; secondly, because they're making such a noise
+inside, no one could possibly hear you.' And certainly there was
+a most extraordinary noise going on within--a constant howling
+and sneezing, and every now and then a great crash, as if a dish
+or kettle had been broken to pieces.
+
+ `Please, then,' said Alice, `how am I to get in?'
+
+ `There might be some sense in your knocking,' the Footman went
+on without attending to her, `if we had the door between us. For
+instance, if you were INSIDE, you might knock, and I could let
+you out, you know.' He was looking up into the sky all the time
+he was speaking, and this Alice thought decidedly uncivil. `But
+perhaps he can't help it,' she said to herself; `his eyes are so
+VERY nearly at the top of his head. But at any rate he might
+answer questions.--How am I to get in?' she repeated, aloud.
+
+ `I shall sit here,' the Footman remarked, `till tomorrow--'
+
+ At this moment the door of the house opened, and a large plate
+came skimming out, straight at the Footman's head: it just
+grazed his nose, and broke to pieces against one of the trees
+behind him.
+
+ `--or next day, maybe,' the Footman continued in the same tone,
+exactly as if nothing had happened.
+
+ `How am I to get in?' asked Alice again, in a louder tone.
+
+ `ARE you to get in at all?' said the Footman. `That's the
+first question, you know.'
+
+ It was, no doubt: only Alice did not like to be told so.
+`It's really dreadful,' she muttered to herself, `the way all the
+creatures argue. It's enough to drive one crazy!'
+
+ The Footman seemed to think this a good opportunity for
+repeating his remark, with variations. `I shall sit here,' he
+said, `on and off, for days and days.'
+
+ `But what am I to do?' said Alice.
+
+ `Anything you like,' said the Footman, and began whistling.
+
+ `Oh, there's no use in talking to him,' said Alice desperately:
+`he's perfectly idiotic!' And she opened the door and went in.
+
+ The door led right into a large kitchen, which was full of
+smoke from one end to the other: the Duchess was sitting on a
+three-legged stool in the middle, nursing a baby; the cook was
+leaning over the fire, stirring a large cauldron which seemed to
+be full of soup.
+
+ `There's certainly too much pepper in that soup!' Alice said to
+herself, as well as she could for sneezing.
+
+ There was certainly too much of it in the air. Even the
+Duchess sneezed occasionally; and as for the baby, it was
+sneezing and howling alternately without a moment's pause. The
+only things in the kitchen that did not sneeze, were the cook,
+and a large cat which was sitting on the hearth and grinning from
+ear to ear.
+
+ `Please would you tell me,' said Alice, a little timidly, for
+she was not quite sure whether it was good manners for her to
+speak first, `why your cat grins like that?'
+
+ `It's a Cheshire cat,' said the Duchess, `and that's why.
+Pig!'
+
+ She said the last word with such sudden violence that Alice
+quite jumped; but she saw in another moment that it was addressed
+to the baby, and not to her, so she took courage, and went on
+again:--
+
+ `I didn't know that Cheshire cats always grinned; in fact, I
+didn't know that cats COULD grin.'
+
+ `They all can,' said the Duchess; `and most of 'em do.'
+
+ `I don't know of any that do,' Alice said very politely,
+feeling quite pleased to have got into a conversation.
+
+ `You don't know much,' said the Duchess; `and that's a fact.'
+
+ Alice did not at all like the tone of this remark, and thought
+it would be as well to introduce some other subject of
+conversation. While she was trying to fix on one, the cook took
+the cauldron of soup off the fire, and at once set to work
+throwing everything within her reach at the Duchess and the baby
+--the fire-irons came first; then followed a shower of saucepans,
+plates, and dishes. The Duchess took no notice of them even when
+they hit her; and the baby was howling so much already, that it
+was quite impossible to say whether the blows hurt it or not.
+
+ `Oh, PLEASE mind what you're doing!' cried Alice, jumping up
+and down in an agony of terror. `Oh, there goes his PRECIOUS
+nose'; as an unusually large saucepan flew close by it, and very
+nearly carried it off.
+
+ `If everybody minded their own business,' the Duchess said in a
+hoarse growl, `the world would go round a deal faster than it
+does.'
+
+ `Which would NOT be an advantage,' said Alice, who felt very
+glad to get an opportunity of showing off a little of her
+knowledge. `Just think of what work it would make with the day
+and night! You see the earth takes twenty-four hours to turn
+round on its axis--'
+
+ `Talking of axes,' said the Duchess, `chop off her head!'
+
+ Alice glanced rather anxiously at the cook, to see if she meant
+to take the hint; but the cook was busily stirring the soup, and
+seemed not to be listening, so she went on again: `Twenty-four
+hours, I THINK; or is it twelve? I--'
+
+ `Oh, don't bother ME,' said the Duchess; `I never could abide
+figures!' And with that she began nursing her child again,
+singing a sort of lullaby to it as she did so, and giving it a
+violent shake at the end of every line:
+
+ `Speak roughly to your little boy,
+ And beat him when he sneezes:
+ He only does it to annoy,
+ Because he knows it teases.'
+
+ CHORUS.
+
+ (In which the cook and the baby joined):--
+
+ `Wow! wow! wow!'
+
+ While the Duchess sang the second verse of the song, she kept
+tossing the baby violently up and down, and the poor little thing
+howled so, that Alice could hardly hear the words:--
+
+ `I speak severely to my boy,
+ I beat him when he sneezes;
+ For he can thoroughly enjoy
+ The pepper when he pleases!'
+
+ CHORUS.
+
+ `Wow! wow! wow!'
+
+ `Here! you may nurse it a bit, if you like!' the Duchess said
+to Alice, flinging the baby at her as she spoke. `I must go and
+get ready to play croquet with the Queen,' and she hurried out of
+the room. The cook threw a frying-pan after her as she went out,
+but it just missed her.
+
+ Alice caught the baby with some difficulty, as it was a queer-
+shaped little creature, and held out its arms and legs in all
+directions, `just like a star-fish,' thought Alice. The poor
+little thing was snorting like a steam-engine when she caught it,
+and kept doubling itself up and straightening itself out again,
+so that altogether, for the first minute or two, it was as much
+as she could do to hold it.
+
+ As soon as she had made out the proper way of nursing it,
+(which was to twist it up into a sort of knot, and then keep
+tight hold of its right ear and left foot, so as to prevent its
+undoing itself,) she carried it out into the open air. `IF I
+don't take this child away with me,' thought Alice, `they're sure
+to kill it in a day or two: wouldn't it be murder to leave it
+behind?' She said the last words out loud, and the little thing
+grunted in reply (it had left off sneezing by this time). `Don't
+grunt,' said Alice; `that's not at all a proper way of expressing
+yourself.'
+
+ The baby grunted again, and Alice looked very anxiously into
+its face to see what was the matter with it. There could be no
+doubt that it had a VERY turn-up nose, much more like a snout
+than a real nose; also its eyes were getting extremely small for
+a baby: altogether Alice did not like the look of the thing at
+all. `But perhaps it was only sobbing,' she thought, and looked
+into its eyes again, to see if there were any tears.
+
+ No, there were no tears. `If you're going to turn into a pig,
+my dear,' said Alice, seriously, `I'll have nothing more to do
+with you. Mind now!' The poor little thing sobbed again (or
+grunted, it was impossible to say which), and they went on for
+some while in silence.
+
+ Alice was just beginning to think to herself, `Now, what am I
+to do with this creature when I get it home?' when it grunted
+again, so violently, that she looked down into its face in some
+alarm. This time there could be NO mistake about it: it was
+neither more nor less than a pig, and she felt that it would be
+quite absurd for her to carry it further.
+
+ So she set the little creature down, and felt quite relieved to
+see it trot away quietly into the wood. `If it had grown up,'
+she said to herself, `it would have made a dreadfully ugly child:
+but it makes rather a handsome pig, I think.' And she began
+thinking over other children she knew, who might do very well as
+pigs, and was just saying to herself, `if one only knew the right
+way to change them--' when she was a little startled by seeing
+the Cheshire Cat sitting on a bough of a tree a few yards off.
+
+ The Cat only grinned when it saw Alice. It looked good-
+natured, she thought: still it had VERY long claws and a great
+many teeth, so she felt that it ought to be treated with respect.
+
+ `Cheshire Puss,' she began, rather timidly, as she did not at
+all know whether it would like the name: however, it only
+grinned a little wider. `Come, it's pleased so far,' thought
+Alice, and she went on. `Would you tell me, please, which way I
+ought to go from here?'
+
+ `That depends a good deal on where you want to get to,' said
+the Cat.
+
+ `I don't much care where--' said Alice.
+
+ `Then it doesn't matter which way you go,' said the Cat.
+
+ `--so long as I get SOMEWHERE,' Alice added as an explanation.
+
+ `Oh, you're sure to do that,' said the Cat, `if you only walk
+long enough.'
+
+ Alice felt that this could not be denied, so she tried another
+question. `What sort of people live about here?'
+
+ `In THAT direction,' the Cat said, waving its right paw round,
+`lives a Hatter: and in THAT direction,' waving the other paw,
+`lives a March Hare. Visit either you like: they're both mad.'
+
+ `But I don't want to go among mad people,' Alice remarked.
+
+ `Oh, you can't help that,' said the Cat: `we're all mad here.
+I'm mad. You're mad.'
+
+ `How do you know I'm mad?' said Alice.
+
+ `You must be,' said the Cat, `or you wouldn't have come here.'
+
+ Alice didn't think that proved it at all; however, she went on
+`And how do you know that you're mad?'
+
+ `To begin with,' said the Cat, `a dog's not mad. You grant
+that?'
+
+ `I suppose so,' said Alice.
+
+ `Well, then,' the Cat went on, `you see, a dog growls when it's
+angry, and wags its tail when it's pleased. Now I growl when I'm
+pleased, and wag my tail when I'm angry. Therefore I'm mad.'
+
+ `I call it purring, not growling,' said Alice.
+
+ `Call it what you like,' said the Cat. `Do you play croquet
+with the Queen to-day?'
+
+ `I should like it very much,' said Alice, `but I haven't been
+invited yet.'
+
+ `You'll see me there,' said the Cat, and vanished.
+
+ Alice was not much surprised at this, she was getting so used
+to queer things happening. While she was looking at the place
+where it had been, it suddenly appeared again.
+
+ `By-the-bye, what became of the baby?' said the Cat. `I'd
+nearly forgotten to ask.'
+
+ `It turned into a pig,' Alice quietly said, just as if it had
+come back in a natural way.
+
+ `I thought it would,' said the Cat, and vanished again.
+
+ Alice waited a little, half expecting to see it again, but it
+did not appear, and after a minute or two she walked on in the
+direction in which the March Hare was said to live. `I've seen
+hatters before,' she said to herself; `the March Hare will be
+much the most interesting, and perhaps as this is May it won't be
+raving mad--at least not so mad as it was in March.' As she said
+this, she looked up, and there was the Cat again, sitting on a
+branch of a tree.
+
+ `Did you say pig, or fig?' said the Cat.
+
+ `I said pig,' replied Alice; `and I wish you wouldn't keep
+appearing and vanishing so suddenly: you make one quite giddy.'
+
+ `All right,' said the Cat; and this time it vanished quite
+slowly, beginning with the end of the tail, and ending with the
+grin, which remained some time after the rest of it had gone.
+
+ `Well! I've often seen a cat without a grin,' thought Alice;
+`but a grin without a cat! It's the most curious thing I ever
+say in my life!'
+
+ She had not gone much farther before she came in sight of the
+house of the March Hare: she thought it must be the right house,
+because the chimneys were shaped like ears and the roof was
+thatched with fur. It was so large a house, that she did not
+like to go nearer till she had nibbled some more of the lefthand
+bit of mushroom, and raised herself to about two feet high: even
+then she walked up towards it rather timidly, saying to herself
+`Suppose it should be raving mad after all! I almost wish I'd
+gone to see the Hatter instead!'
+
+
+
+ CHAPTER VII
+
+ A Mad Tea-Party
+
+
+ There was a table set out under a tree in front of the house,
+and the March Hare and the Hatter were having tea at it: a
+Dormouse was sitting between them, fast asleep, and the other two
+were using it as a cushion, resting their elbows on it, and the
+talking over its head. `Very uncomfortable for the Dormouse,'
+thought Alice; `only, as it's asleep, I suppose it doesn't mind.'
+
+ The table was a large one, but the three were all crowded
+together at one corner of it: `No room! No room!' they cried
+out when they saw Alice coming. `There's PLENTY of room!' said
+Alice indignantly, and she sat down in a large arm-chair at one
+end of the table.
+
+ `Have some wine,' the March Hare said in an encouraging tone.
+
+ Alice looked all round the table, but there was nothing on it
+but tea. `I don't see any wine,' she remarked.
+
+ `There isn't any,' said the March Hare.
+
+ `Then it wasn't very civil of you to offer it,' said Alice
+angrily.
+
+ `It wasn't very civil of you to sit down without being
+invited,' said the March Hare.
+
+ `I didn't know it was YOUR table,' said Alice; `it's laid for a
+great many more than three.'
+
+ `Your hair wants cutting,' said the Hatter. He had been
+looking at Alice for some time with great curiosity, and this was
+his first speech.
+
+ `You should learn not to make personal remarks,' Alice said
+with some severity; `it's very rude.'
+
+ The Hatter opened his eyes very wide on hearing this; but all
+he SAID was, `Why is a raven like a writing-desk?'
+
+ `Come, we shall have some fun now!' thought Alice. `I'm glad
+they've begun asking riddles.--I believe I can guess that,' she
+added aloud.
+
+ `Do you mean that you think you can find out the answer to it?'
+said the March Hare.
+
+ `Exactly so,' said Alice.
+
+ `Then you should say what you mean,' the March Hare went on.
+
+ `I do,' Alice hastily replied; `at least--at least I mean what
+I say--that's the same thing, you know.'
+
+ `Not the same thing a bit!' said the Hatter. `You might just
+as well say that "I see what I eat" is the same thing as "I eat
+what I see"!'
+
+ `You might just as well say,' added the March Hare, `that "I
+like what I get" is the same thing as "I get what I like"!'
+
+ `You might just as well say,' added the Dormouse, who seemed to
+be talking in his sleep, `that "I breathe when I sleep" is the
+same thing as "I sleep when I breathe"!'
+
+ `It IS the same thing with you,' said the Hatter, and here the
+conversation dropped, and the party sat silent for a minute,
+while Alice thought over all she could remember about ravens and
+writing-desks, which wasn't much.
+
+ The Hatter was the first to break the silence. `What day of
+the month is it?' he said, turning to Alice: he had taken his
+watch out of his pocket, and was looking at it uneasily, shaking
+it every now and then, and holding it to his ear.
+
+ Alice considered a little, and then said `The fourth.'
+
+ `Two days wrong!' sighed the Hatter. `I told you butter
+wouldn't suit the works!' he added looking angrily at the March
+Hare.
+
+ `It was the BEST butter,' the March Hare meekly replied.
+
+ `Yes, but some crumbs must have got in as well,' the Hatter
+grumbled: `you shouldn't have put it in with the bread-knife.'
+
+ The March Hare took the watch and looked at it gloomily: then
+he dipped it into his cup of tea, and looked at it again: but he
+could think of nothing better to say than his first remark, `It
+was the BEST butter, you know.'
+
+ Alice had been looking over his shoulder with some curiosity.
+`What a funny watch!' she remarked. `It tells the day of the
+month, and doesn't tell what o'clock it is!'
+
+ `Why should it?' muttered the Hatter. `Does YOUR watch tell
+you what year it is?'
+
+ `Of course not,' Alice replied very readily: `but that's
+because it stays the same year for such a long time together.'
+
+ `Which is just the case with MINE,' said the Hatter.
+
+ Alice felt dreadfully puzzled. The Hatter's remark seemed to
+have no sort of meaning in it, and yet it was certainly English.
+`I don't quite understand you,' she said, as politely as she
+could.
+
+ `The Dormouse is asleep again,' said the Hatter, and he poured
+a little hot tea upon its nose.
+
+ The Dormouse shook its head impatiently, and said, without
+opening its eyes, `Of course, of course; just what I was going to
+remark myself.'
+
+ `Have you guessed the riddle yet?' the Hatter said, turning to
+Alice again.
+
+ `No, I give it up,' Alice replied: `what's the answer?'
+
+ `I haven't the slightest idea,' said the Hatter.
+
+ `Nor I,' said the March Hare.
+
+ Alice sighed wearily. `I think you might do something better
+with the time,' she said, `than waste it in asking riddles that
+have no answers.'
+
+ `If you knew Time as well as I do,' said the Hatter, `you
+wouldn't talk about wasting IT. It's HIM.'
+
+ `I don't know what you mean,' said Alice.
+
+ `Of course you don't!' the Hatter said, tossing his head
+contemptuously. `I dare say you never even spoke to Time!'
+
+ `Perhaps not,' Alice cautiously replied: `but I know I have to
+beat time when I learn music.'
+
+ `Ah! that accounts for it,' said the Hatter. `He won't stand
+beating. Now, if you only kept on good terms with him, he'd do
+almost anything you liked with the clock. For instance, suppose
+it were nine o'clock in the morning, just time to begin lessons:
+you'd only have to whisper a hint to Time, and round goes the
+clock in a twinkling! Half-past one, time for dinner!'
+
+ (`I only wish it was,' the March Hare said to itself in a
+whisper.)
+
+ `That would be grand, certainly,' said Alice thoughtfully:
+`but then--I shouldn't be hungry for it, you know.'
+
+ `Not at first, perhaps,' said the Hatter: `but you could keep
+it to half-past one as long as you liked.'
+
+ `Is that the way YOU manage?' Alice asked.
+
+ The Hatter shook his head mournfully. `Not I!' he replied.
+`We quarrelled last March--just before HE went mad, you know--'
+(pointing with his tea spoon at the March Hare,) `--it was at the
+great concert given by the Queen of Hearts, and I had to sing
+
+ "Twinkle, twinkle, little bat!
+ How I wonder what you're at!"
+
+You know the song, perhaps?'
+
+ `I've heard something like it,' said Alice.
+
+ `It goes on, you know,' the Hatter continued, `in this way:--
+
+ "Up above the world you fly,
+ Like a tea-tray in the sky.
+ Twinkle, twinkle--"'
+
+Here the Dormouse shook itself, and began singing in its sleep
+`Twinkle, twinkle, twinkle, twinkle--' and went on so long that
+they had to pinch it to make it stop.
+
+ `Well, I'd hardly finished the first verse,' said the Hatter,
+`when the Queen jumped up and bawled out, "He's murdering the
+time! Off with his head!"'
+
+ `How dreadfully savage!' exclaimed Alice.
+
+ `And ever since that,' the Hatter went on in a mournful tone,
+`he won't do a thing I ask! It's always six o'clock now.'
+
+ A bright idea came into Alice's head. `Is that the reason so
+many tea-things are put out here?' she asked.
+
+ `Yes, that's it,' said the Hatter with a sigh: `it's always
+tea-time, and we've no time to wash the things between whiles.'
+
+ `Then you keep moving round, I suppose?' said Alice.
+
+ `Exactly so,' said the Hatter: `as the things get used up.'
+
+ `But what happens when you come to the beginning again?' Alice
+ventured to ask.
+
+ `Suppose we change the subject,' the March Hare interrupted,
+yawning. `I'm getting tired of this. I vote the young lady
+tells us a story.'
+
+ `I'm afraid I don't know one,' said Alice, rather alarmed at
+the proposal.
+
+ `Then the Dormouse shall!' they both cried. `Wake up,
+Dormouse!' And they pinched it on both sides at once.
+
+ The Dormouse slowly opened his eyes. `I wasn't asleep,' he
+said in a hoarse, feeble voice: `I heard every word you fellows
+were saying.'
+
+ `Tell us a story!' said the March Hare.
+
+ `Yes, please do!' pleaded Alice.
+
+ `And be quick about it,' added the Hatter, `or you'll be asleep
+again before it's done.'
+
+ `Once upon a time there were three little sisters,' the
+Dormouse began in a great hurry; `and their names were Elsie,
+Lacie, and Tillie; and they lived at the bottom of a well--'
+
+ `What did they live on?' said Alice, who always took a great
+interest in questions of eating and drinking.
+
+ `They lived on treacle,' said the Dormouse, after thinking a
+minute or two.
+
+ `They couldn't have done that, you know,' Alice gently
+remarked; `they'd have been ill.'
+
+ `So they were,' said the Dormouse; `VERY ill.'
+
+ Alice tried to fancy to herself what such an extraordinary ways
+of living would be like, but it puzzled her too much, so she went
+on: `But why did they live at the bottom of a well?'
+
+ `Take some more tea,' the March Hare said to Alice, very
+earnestly.
+
+ `I've had nothing yet,' Alice replied in an offended tone, `so
+I can't take more.'
+
+ `You mean you can't take LESS,' said the Hatter: `it's very
+easy to take MORE than nothing.'
+
+ `Nobody asked YOUR opinion,' said Alice.
+
+ `Who's making personal remarks now?' the Hatter asked
+triumphantly.
+
+ Alice did not quite know what to say to this: so she helped
+herself to some tea and bread-and-butter, and then turned to the
+Dormouse, and repeated her question. `Why did they live at the
+bottom of a well?'
+
+ The Dormouse again took a minute or two to think about it, and
+then said, `It was a treacle-well.'
+
+ `There's no such thing!' Alice was beginning very angrily, but
+the Hatter and the March Hare went `Sh! sh!' and the Dormouse
+sulkily remarked, `If you can't be civil, you'd better finish the
+story for yourself.'
+
+ `No, please go on!' Alice said very humbly; `I won't interrupt
+again. I dare say there may be ONE.'
+
+ `One, indeed!' said the Dormouse indignantly. However, he
+consented to go on. `And so these three little sisters--they
+were learning to draw, you know--'
+
+ `What did they draw?' said Alice, quite forgetting her promise.
+
+ `Treacle,' said the Dormouse, without considering at all this
+time.
+
+ `I want a clean cup,' interrupted the Hatter: `let's all move
+one place on.'
+
+ He moved on as he spoke, and the Dormouse followed him: the
+March Hare moved into the Dormouse's place, and Alice rather
+unwillingly took the place of the March Hare. The Hatter was the
+only one who got any advantage from the change: and Alice was a
+good deal worse off than before, as the March Hare had just upset
+the milk-jug into his plate.
+
+ Alice did not wish to offend the Dormouse again, so she began
+very cautiously: `But I don't understand. Where did they draw
+the treacle from?'
+
+ `You can draw water out of a water-well,' said the Hatter; `so
+I should think you could draw treacle out of a treacle-well--eh,
+stupid?'
+
+ `But they were IN the well,' Alice said to the Dormouse, not
+choosing to notice this last remark.
+
+ `Of course they were', said the Dormouse; `--well in.'
+
+ This answer so confused poor Alice, that she let the Dormouse
+go on for some time without interrupting it.
+
+ `They were learning to draw,' the Dormouse went on, yawning and
+rubbing its eyes, for it was getting very sleepy; `and they drew
+all manner of things--everything that begins with an M--'
+
+ `Why with an M?' said Alice.
+
+ `Why not?' said the March Hare.
+
+ Alice was silent.
+
+ The Dormouse had closed its eyes by this time, and was going
+off into a doze; but, on being pinched by the Hatter, it woke up
+again with a little shriek, and went on: `--that begins with an
+M, such as mouse-traps, and the moon, and memory, and muchness--
+you know you say things are "much of a muchness"--did you ever
+see such a thing as a drawing of a muchness?'
+
+ `Really, now you ask me,' said Alice, very much confused, `I
+don't think--'
+
+ `Then you shouldn't talk,' said the Hatter.
+
+ This piece of rudeness was more than Alice could bear: she got
+up in great disgust, and walked off; the Dormouse fell asleep
+instantly, and neither of the others took the least notice of her
+going, though she looked back once or twice, half hoping that
+they would call after her: the last time she saw them, they were
+trying to put the Dormouse into the teapot.
+
+ `At any rate I'll never go THERE again!' said Alice as she
+picked her way through the wood. `It's the stupidest tea-party I
+ever was at in all my life!'
+
+ Just as she said this, she noticed that one of the trees had a
+door leading right into it. `That's very curious!' she thought.
+`But everything's curious today. I think I may as well go in at
+once.' And in she went.
+
+ Once more she found herself in the long hall, and close to the
+little glass table. `Now, I'll manage better this time,' she
+said to herself, and began by taking the little golden key, and
+unlocking the door that led into the garden. Then she went to
+work nibbling at the mushroom (she had kept a piece of it in her
+pocked) till she was about a foot high: then she walked down the
+little passage: and THEN--she found herself at last in the
+beautiful garden, among the bright flower-beds and the cool
+fountains.
+
+
+
+ CHAPTER VIII
+
+ The Queen's Croquet-Ground
+
+
+ A large rose-tree stood near the entrance of the garden: the
+roses growing on it were white, but there were three gardeners at
+it, busily painting them red. Alice thought this a very curious
+thing, and she went nearer to watch them, and just as she came up
+to them she heard one of them say, `Look out now, Five! Don't go
+splashing paint over me like that!'
+
+ `I couldn't help it,' said Five, in a sulky tone; `Seven jogged
+my elbow.'
+
+ On which Seven looked up and said, `That's right, Five! Always
+lay the blame on others!'
+
+ `YOU'D better not talk!' said Five. `I heard the Queen say only
+yesterday you deserved to be beheaded!'
+
+ `What for?' said the one who had spoken first.
+
+ `That's none of YOUR business, Two!' said Seven.
+
+ `Yes, it IS his business!' said Five, `and I'll tell him--it
+was for bringing the cook tulip-roots instead of onions.'
+
+ Seven flung down his brush, and had just begun `Well, of all
+the unjust things--' when his eye chanced to fall upon Alice, as
+she stood watching them, and he checked himself suddenly: the
+others looked round also, and all of them bowed low.
+
+ `Would you tell me,' said Alice, a little timidly, `why you are
+painting those roses?'
+
+ Five and Seven said nothing, but looked at Two. Two began in a
+low voice, `Why the fact is, you see, Miss, this here ought to
+have been a RED rose-tree, and we put a white one in by mistake;
+and if the Queen was to find it out, we should all have our heads
+cut off, you know. So you see, Miss, we're doing our best, afore
+she comes, to--' At this moment Five, who had been anxiously
+looking across the garden, called out `The Queen! The Queen!'
+and the three gardeners instantly threw themselves flat upon
+their faces. There was a sound of many footsteps, and Alice
+looked round, eager to see the Queen.
+
+ First came ten soldiers carrying clubs; these were all shaped
+like the three gardeners, oblong and flat, with their hands and
+feet at the corners: next the ten courtiers; these were
+ornamented all over with diamonds, and walked two and two, as the
+soldiers did. After these came the royal children; there were
+ten of them, and the little dears came jumping merrily along hand
+in hand, in couples: they were all ornamented with hearts. Next
+came the guests, mostly Kings and Queens, and among them Alice
+recognised the White Rabbit: it was talking in a hurried nervous
+manner, smiling at everything that was said, and went by without
+noticing her. Then followed the Knave of Hearts, carrying the
+King's crown on a crimson velvet cushion; and, last of all this
+grand procession, came THE KING AND QUEEN OF HEARTS.
+
+ Alice was rather doubtful whether she ought not to lie down on
+her face like the three gardeners, but she could not remember
+every having heard of such a rule at processions; `and besides,
+what would be the use of a procession,' thought she, `if people
+had all to lie down upon their faces, so that they couldn't see
+it?' So she stood still where she was, and waited.
+
+ When the procession came opposite to Alice, they all stopped
+and looked at her, and the Queen said severely `Who is this?'
+She said it to the Knave of Hearts, who only bowed and smiled in
+reply.
+
+ `Idiot!' said the Queen, tossing her head impatiently; and,
+turning to Alice, she went on, `What's your name, child?'
+
+ `My name is Alice, so please your Majesty,' said Alice very
+politely; but she added, to herself, `Why, they're only a pack of
+cards, after all. I needn't be afraid of them!'
+
+ `And who are THESE?' said the Queen, pointing to the three
+gardeners who were lying round the rosetree; for, you see, as
+they were lying on their faces, and the pattern on their backs
+was the same as the rest of the pack, she could not tell whether
+they were gardeners, or soldiers, or courtiers, or three of her
+own children.
+
+ `How should I know?' said Alice, surprised at her own courage.
+`It's no business of MINE.'
+
+ The Queen turned crimson with fury, and, after glaring at her
+for a moment like a wild beast, screamed `Off with her head!
+Off--'
+
+ `Nonsense!' said Alice, very loudly and decidedly, and the
+Queen was silent.
+
+ The King laid his hand upon her arm, and timidly said
+`Consider, my dear: she is only a child!'
+
+ The Queen turned angrily away from him, and said to the Knave
+`Turn them over!'
+
+ The Knave did so, very carefully, with one foot.
+
+ `Get up!' said the Queen, in a shrill, loud voice, and the
+three gardeners instantly jumped up, and began bowing to the
+King, the Queen, the royal children, and everybody else.
+
+ `Leave off that!' screamed the Queen. `You make me giddy.'
+And then, turning to the rose-tree, she went on, `What HAVE you
+been doing here?'
+
+ `May it please your Majesty,' said Two, in a very humble tone,
+going down on one knee as he spoke, `we were trying--'
+
+ `I see!' said the Queen, who had meanwhile been examining the
+roses. `Off with their heads!' and the procession moved on,
+three of the soldiers remaining behind to execute the unfortunate
+gardeners, who ran to Alice for protection.
+
+ `You shan't be beheaded!' said Alice, and she put them into a
+large flower-pot that stood near. The three soldiers wandered
+about for a minute or two, looking for them, and then quietly
+marched off after the others.
+
+ `Are their heads off?' shouted the Queen.
+
+ `Their heads are gone, if it please your Majesty!' the soldiers
+shouted in reply.
+
+ `That's right!' shouted the Queen. `Can you play croquet?'
+
+ The soldiers were silent, and looked at Alice, as the question
+was evidently meant for her.
+
+ `Yes!' shouted Alice.
+
+ `Come on, then!' roared the Queen, and Alice joined the
+procession, wondering very much what would happen next.
+
+ `It's--it's a very fine day!' said a timid voice at her side.
+She was walking by the White Rabbit, who was peeping anxiously
+into her face.
+
+ `Very,' said Alice: `--where's the Duchess?'
+
+ `Hush! Hush!' said the Rabbit in a low, hurried tone. He
+looked anxiously over his shoulder as he spoke, and then raised
+himself upon tiptoe, put his mouth close to her ear, and
+whispered `She's under sentence of execution.'
+
+ `What for?' said Alice.
+
+ `Did you say "What a pity!"?' the Rabbit asked.
+
+ `No, I didn't,' said Alice: `I don't think it's at all a pity.
+I said "What for?"'
+
+ `She boxed the Queen's ears--' the Rabbit began. Alice gave a
+little scream of laughter. `Oh, hush!' the Rabbit whispered in a
+frightened tone. `The Queen will hear you! You see, she came
+rather late, and the Queen said--'
+
+ `Get to your places!' shouted the Queen in a voice of thunder,
+and people began running about in all directions, tumbling up
+against each other; however, they got settled down in a minute or
+two, and the game began. Alice thought she had never seen such a
+curious croquet-ground in her life; it was all ridges and
+furrows; the balls were live hedgehogs, the mallets live
+flamingoes, and the soldiers had to double themselves up and to
+stand on their hands and feet, to make the arches.
+
+ The chief difficulty Alice found at first was in managing her
+flamingo: she succeeded in getting its body tucked away,
+comfortably enough, under her arm, with its legs hanging down,
+but generally, just as she had got its neck nicely straightened
+out, and was going to give the hedgehog a blow with its head, it
+WOULD twist itself round and look up in her face, with such a
+puzzled expression that she could not help bursting out laughing:
+and when she had got its head down, and was going to begin again,
+it was very provoking to find that the hedgehog had unrolled
+itself, and was in the act of crawling away: besides all this,
+there was generally a ridge or furrow in the way wherever she
+wanted to send the hedgehog to, and, as the doubled-up soldiers
+were always getting up and walking off to other parts of the
+ground, Alice soon came to the conclusion that it was a very
+difficult game indeed.
+
+ The players all played at once without waiting for turns,
+quarrelling all the while, and fighting for the hedgehogs; and in
+a very short time the Queen was in a furious passion, and went
+stamping about, and shouting `Off with his head!' or `Off with
+her head!' about once in a minute.
+
+ Alice began to feel very uneasy: to be sure, she had not as
+yet had any dispute with the Queen, but she knew that it might
+happen any minute, `and then,' thought she, `what would become of
+me? They're dreadfully fond of beheading people here; the great
+wonder is, that there's any one left alive!'
+
+ She was looking about for some way of escape, and wondering
+whether she could get away without being seen, when she noticed a
+curious appearance in the air: it puzzled her very much at
+first, but, after watching it a minute or two, she made it out to
+be a grin, and she said to herself `It's the Cheshire Cat: now I
+shall have somebody to talk to.'
+
+ `How are you getting on?' said the Cat, as soon as there was
+mouth enough for it to speak with.
+
+ Alice waited till the eyes appeared, and then nodded. `It's no
+use speaking to it,' she thought, `till its ears have come, or at
+least one of them.' In another minute the whole head appeared,
+and then Alice put down her flamingo, and began an account of the
+game, feeling very glad she had someone to listen to her. The
+Cat seemed to think that there was enough of it now in sight, and
+no more of it appeared.
+
+ `I don't think they play at all fairly,' Alice began, in rather
+a complaining tone, `and they all quarrel so dreadfully one can't
+hear oneself speak--and they don't seem to have any rules in
+particular; at least, if there are, nobody attends to them--and
+you've no idea how confusing it is all the things being alive;
+for instance, there's the arch I've got to go through next
+walking about at the other end of the ground--and I should have
+croqueted the Queen's hedgehog just now, only it ran away when it
+saw mine coming!'
+
+ `How do you like the Queen?' said the Cat in a low voice.
+
+ `Not at all,' said Alice: `she's so extremely--' Just then
+she noticed that the Queen was close behind her, listening: so
+she went on, `--likely to win, that it's hardly worth while
+finishing the game.'
+
+ The Queen smiled and passed on.
+
+ `Who ARE you talking to?' said the King, going up to Alice, and
+looking at the Cat's head with great curiosity.
+
+ `It's a friend of mine--a Cheshire Cat,' said Alice: `allow me
+to introduce it.'
+
+ `I don't like the look of it at all,' said the King: `however,
+it may kiss my hand if it likes.'
+
+ `I'd rather not,' the Cat remarked.
+
+ `Don't be impertinent,' said the King, `and don't look at me
+like that!' He got behind Alice as he spoke.
+
+ `A cat may look at a king,' said Alice. `I've read that in
+some book, but I don't remember where.'
+
+ `Well, it must be removed,' said the King very decidedly, and
+he called the Queen, who was passing at the moment, `My dear! I
+wish you would have this cat removed!'
+
+ The Queen had only one way of settling all difficulties, great
+or small. `Off with his head!' she said, without even looking
+round.
+
+ `I'll fetch the executioner myself,' said the King eagerly, and
+he hurried off.
+
+ Alice thought she might as well go back, and see how the game
+was going on, as she heard the Queen's voice in the distance,
+screaming with passion. She had already heard her sentence three
+of the players to be executed for having missed their turns, and
+she did not like the look of things at all, as the game was in
+such confusion that she never knew whether it was her turn or
+not. So she went in search of her hedgehog.
+
+ The hedgehog was engaged in a fight with another hedgehog,
+which seemed to Alice an excellent opportunity for croqueting one
+of them with the other: the only difficulty was, that her
+flamingo was gone across to the other side of the garden, where
+Alice could see it trying in a helpless sort of way to fly up
+into a tree.
+
+ By the time she had caught the flamingo and brought it back,
+the fight was over, and both the hedgehogs were out of sight:
+`but it doesn't matter much,' thought Alice, `as all the arches
+are gone from this side of the ground.' So she tucked it away
+under her arm, that it might not escape again, and went back for
+a little more conversation with her friend.
+
+ When she got back to the Cheshire Cat, she was surprised to
+find quite a large crowd collected round it: there was a dispute
+going on between the executioner, the King, and the Queen, who
+were all talking at once, while all the rest were quite silent,
+and looked very uncomfortable.
+
+ The moment Alice appeared, she was appealed to by all three to
+settle the question, and they repeated their arguments to her,
+though, as they all spoke at once, she found it very hard indeed
+to make out exactly what they said.
+
+ The executioner's argument was, that you couldn't cut off a
+head unless there was a body to cut it off from: that he had
+never had to do such a thing before, and he wasn't going to begin
+at HIS time of life.
+
+ The King's argument was, that anything that had a head could be
+beheaded, and that you weren't to talk nonsense.
+
+ The Queen's argument was, that if something wasn't done about
+it in less than no time she'd have everybody executed, all round.
+(It was this last remark that had made the whole party look so
+grave and anxious.)
+
+ Alice could think of nothing else to say but `It belongs to the
+Duchess: you'd better ask HER about it.'
+
+ `She's in prison,' the Queen said to the executioner: `fetch
+her here.' And the executioner went off like an arrow.
+
+ The Cat's head began fading away the moment he was gone, and,
+by the time he had come back with the Dutchess, it had entirely
+disappeared; so the King and the executioner ran wildly up and
+down looking for it, while the rest of the party went back to the game.
+
+
+
+ CHAPTER IX
+
+ The Mock Turtle's Story
+
+
+ `You can't think how glad I am to see you again, you dear old
+thing!' said the Duchess, as she tucked her arm affectionately
+into Alice's, and they walked off together.
+
+ Alice was very glad to find her in such a pleasant temper, and
+thought to herself that perhaps it was only the pepper that had
+made her so savage when they met in the kitchen.
+
+ `When I'M a Duchess,' she said to herself, (not in a very
+hopeful tone though), `I won't have any pepper in my kitchen AT
+ALL. Soup does very well without--Maybe it's always pepper that
+makes people hot-tempered,' she went on, very much pleased at
+having found out a new kind of rule, `and vinegar that makes them
+sour--and camomile that makes them bitter--and--and barley-sugar
+and such things that make children sweet-tempered. I only wish
+people knew that: then they wouldn't be so stingy about it, you
+know--'
+
+ She had quite forgotten the Duchess by this time, and was a
+little startled when she heard her voice close to her ear.
+`You're thinking about something, my dear, and that makes you
+forget to talk. I can't tell you just now what the moral of that
+is, but I shall remember it in a bit.'
+
+ `Perhaps it hasn't one,' Alice ventured to remark.
+
+ `Tut, tut, child!' said the Duchess. `Everything's got a
+moral, if only you can find it.' And she squeezed herself up
+closer to Alice's side as she spoke.
+
+ Alice did not much like keeping so close to her: first,
+because the Duchess was VERY ugly; and secondly, because she was
+exactly the right height to rest her chin upon Alice's shoulder,
+and it was an uncomfortably sharp chin. However, she did not
+like to be rude, so she bore it as well as she could.
+
+ `The game's going on rather better now,' she said, by way of
+keeping up the conversation a little.
+
+ `'Tis so,' said the Duchess: `and the moral of that is--"Oh,
+'tis love, 'tis love, that makes the world go round!"'
+
+ `Somebody said,' Alice whispered, `that it's done by everybody
+minding their own business!'
+
+ `Ah, well! It means much the same thing,' said the Duchess,
+digging her sharp little chin into Alice's shoulder as she added,
+`and the moral of THAT is--"Take care of the sense, and the
+sounds will take care of themselves."'
+
+ `How fond she is of finding morals in things!' Alice thought to
+herself.
+
+ `I dare say you're wondering why I don't put my arm round your
+waist,' the Duchess said after a pause: `the reason is, that I'm
+doubtful about the temper of your flamingo. Shall I try the
+experiment?'
+
+ `HE might bite,' Alice cautiously replied, not feeling at all
+anxious to have the experiment tried.
+
+ `Very true,' said the Duchess: `flamingoes and mustard both
+bite. And the moral of that is--"Birds of a feather flock
+together."'
+
+ `Only mustard isn't a bird,' Alice remarked.
+
+ `Right, as usual,' said the Duchess: `what a clear way you
+have of putting things!'
+
+ `It's a mineral, I THINK,' said Alice.
+
+ `Of course it is,' said the Duchess, who seemed ready to agree
+to everything that Alice said; `there's a large mustard-mine near
+here. And the moral of that is--"The more there is of mine, the
+less there is of yours."'
+
+ `Oh, I know!' exclaimed Alice, who had not attended to this
+last remark, `it's a vegetable. It doesn't look like one, but it
+is.'
+
+ `I quite agree with you,' said the Duchess; `and the moral of
+that is--"Be what you would seem to be"--or if you'd like it put
+more simply--"Never imagine yourself not to be otherwise than
+what it might appear to others that what you were or might have
+been was not otherwise than what you had been would have appeared
+to them to be otherwise."'
+
+ `I think I should understand that better,' Alice said very
+politely, `if I had it written down: but I can't quite follow it
+as you say it.'
+
+ `That's nothing to what I could say if I chose,' the Duchess
+replied, in a pleased tone.
+
+ `Pray don't trouble yourself to say it any longer than that,'
+said Alice.
+
+ `Oh, don't talk about trouble!' said the Duchess. `I make you
+a present of everything I've said as yet.'
+
+ `A cheap sort of present!' thought Alice. `I'm glad they don't
+give birthday presents like that!' But she did not venture to
+say it out loud.
+
+ `Thinking again?' the Duchess asked, with another dig of her
+sharp little chin.
+
+ `I've a right to think,' said Alice sharply, for she was
+beginning to feel a little worried.
+
+ `Just about as much right,' said the Duchess, `as pigs have to
+fly; and the m--'
+
+ But here, to Alice's great surprise, the Duchess's voice died
+away, even in the middle of her favourite word `moral,' and the
+arm that was linked into hers began to tremble. Alice looked up,
+and there stood the Queen in front of them, with her arms folded,
+frowning like a thunderstorm.
+
+ `A fine day, your Majesty!' the Duchess began in a low, weak
+voice.
+
+ `Now, I give you fair warning,' shouted the Queen, stamping on
+the ground as she spoke; `either you or your head must be off,
+and that in about half no time! Take your choice!'
+
+ The Duchess took her choice, and was gone in a moment.
+
+ `Let's go on with the game,' the Queen said to Alice; and Alice
+was too much frightened to say a word, but slowly followed her
+back to the croquet-ground.
+
+ The other guests had taken advantage of the Queen's absence,
+and were resting in the shade: however, the moment they saw her,
+they hurried back to the game, the Queen merely remarking that a
+moment's delay would cost them their lives.
+
+ All the time they were playing the Queen never left off
+quarrelling with the other players, and shouting `Off with his
+head!' or `Off with her head!' Those whom she sentenced were
+taken into custody by the soldiers, who of course had to leave
+off being arches to do this, so that by the end of half an hour
+or so there were no arches left, and all the players, except the
+King, the Queen, and Alice, were in custody and under sentence of
+execution.
+
+ Then the Queen left off, quite out of breath, and said to
+Alice, `Have you seen the Mock Turtle yet?'
+
+ `No,' said Alice. `I don't even know what a Mock Turtle is.'
+
+ `It's the thing Mock Turtle Soup is made from,' said the Queen.
+
+ `I never saw one, or heard of one,' said Alice.
+
+ `Come on, then,' said the Queen, `and he shall tell you his
+history,'
+
+ As they walked off together, Alice heard the King say in a low
+voice, to the company generally, `You are all pardoned.' `Come,
+THAT'S a good thing!' she said to herself, for she had felt quite
+unhappy at the number of executions the Queen had ordered.
+
+ They very soon came upon a Gryphon, lying fast asleep in the
+sun. (IF you don't know what a Gryphon is, look at the picture.)
+`Up, lazy thing!' said the Queen, `and take this young lady to
+see the Mock Turtle, and to hear his history. I must go back and
+see after some executions I have ordered'; and she walked off,
+leaving Alice alone with the Gryphon. Alice did not quite like
+the look of the creature, but on the whole she thought it would
+be quite as safe to stay with it as to go after that savage
+Queen: so she waited.
+
+ The Gryphon sat up and rubbed its eyes: then it watched the
+Queen till she was out of sight: then it chuckled. `What fun!'
+said the Gryphon, half to itself, half to Alice.
+
+ `What IS the fun?' said Alice.
+
+ `Why, SHE,' said the Gryphon. `It's all her fancy, that: they
+never executes nobody, you know. Come on!'
+
+ `Everybody says "come on!" here,' thought Alice, as she went
+slowly after it: `I never was so ordered about in all my life,
+never!'
+
+ They had not gone far before they saw the Mock Turtle in the
+distance, sitting sad and lonely on a little ledge of rock, and,
+as they came nearer, Alice could hear him sighing as if his heart
+would break. She pitied him deeply. `What is his sorrow?' she
+asked the Gryphon, and the Gryphon answered, very nearly in the
+same words as before, `It's all his fancy, that: he hasn't got
+no sorrow, you know. Come on!'
+
+ So they went up to the Mock Turtle, who looked at them with
+large eyes full of tears, but said nothing.
+
+ `This here young lady,' said the Gryphon, `she wants for to
+know your history, she do.'
+
+ `I'll tell it her,' said the Mock Turtle in a deep, hollow
+tone: `sit down, both of you, and don't speak a word till I've
+finished.'
+
+ So they sat down, and nobody spoke for some minutes. Alice
+thought to herself, `I don't see how he can EVEN finish, if he
+doesn't begin.' But she waited patiently.
+
+ `Once,' said the Mock Turtle at last, with a deep sigh, `I was
+a real Turtle.'
+
+ These words were followed by a very long silence, broken only
+by an occasional exclamation of `Hjckrrh!' from the Gryphon, and
+the constant heavy sobbing of the Mock Turtle. Alice was very
+nearly getting up and saying, `Thank you, sir, for your
+interesting story,' but she could not help thinking there MUST be
+more to come, so she sat still and said nothing.
+
+ `When we were little,' the Mock Turtle went on at last, more
+calmly, though still sobbing a little now and then, `we went to
+school in the sea. The master was an old Turtle--we used to call
+him Tortoise--'
+
+ `Why did you call him Tortoise, if he wasn't one?' Alice asked.
+
+ `We called him Tortoise because he taught us,' said the Mock
+Turtle angrily: `really you are very dull!'
+
+ `You ought to be ashamed of yourself for asking such a simple
+question,' added the Gryphon; and then they both sat silent and
+looked at poor Alice, who felt ready to sink into the earth. At
+last the Gryphon said to the Mock Turtle, `Drive on, old fellow!
+Don't be all day about it!' and he went on in these words:
+
+ `Yes, we went to school in the sea, though you mayn't believe
+it--'
+
+ `I never said I didn't!' interrupted Alice.
+
+ `You did,' said the Mock Turtle.
+
+ `Hold your tongue!' added the Gryphon, before Alice could speak
+again. The Mock Turtle went on.
+
+ `We had the best of educations--in fact, we went to school
+every day--'
+
+ `I'VE been to a day-school, too,' said Alice; `you needn't be
+so proud as all that.'
+
+ `With extras?' asked the Mock Turtle a little anxiously.
+
+ `Yes,' said Alice, `we learned French and music.'
+
+ `And washing?' said the Mock Turtle.
+
+ `Certainly not!' said Alice indignantly.
+
+ `Ah! then yours wasn't a really good school,' said the Mock
+Turtle in a tone of great relief. `Now at OURS they had at the
+end of the bill, "French, music, AND WASHING--extra."'
+
+ `You couldn't have wanted it much,' said Alice; `living at the
+bottom of the sea.'
+
+ `I couldn't afford to learn it.' said the Mock Turtle with a
+sigh. `I only took the regular course.'
+
+ `What was that?' inquired Alice.
+
+ `Reeling and Writhing, of course, to begin with,' the Mock
+Turtle replied; `and then the different branches of Arithmetic--
+Ambition, Distraction, Uglification, and Derision.'
+
+ `I never heard of "Uglification,"' Alice ventured to say. `What
+is it?'
+
+ The Gryphon lifted up both its paws in surprise. `What! Never
+heard of uglifying!' it exclaimed. `You know what to beautify
+is, I suppose?'
+
+ `Yes,' said Alice doubtfully: `it means--to--make--anything--
+prettier.'
+
+ `Well, then,' the Gryphon went on, `if you don't know what to
+uglify is, you ARE a simpleton.'
+
+ Alice did not feel encouraged to ask any more questions about
+it, so she turned to the Mock Turtle, and said `What else had you
+to learn?'
+
+ `Well, there was Mystery,' the Mock Turtle replied, counting
+off the subjects on his flappers, `--Mystery, ancient and modern,
+with Seaography: then Drawling--the Drawling-master was an old
+conger-eel, that used to come once a week: HE taught us
+Drawling, Stretching, and Fainting in Coils.'
+
+ `What was THAT like?' said Alice.
+
+ `Well, I can't show it you myself,' the Mock Turtle said: `I'm
+too stiff. And the Gryphon never learnt it.'
+
+ `Hadn't time,' said the Gryphon: `I went to the Classics
+master, though. He was an old crab, HE was.'
+
+ `I never went to him,' the Mock Turtle said with a sigh: `he
+taught Laughing and Grief, they used to say.'
+
+ `So he did, so he did,' said the Gryphon, sighing in his turn;
+and both creatures hid their faces in their paws.
+
+ `And how many hours a day did you do lessons?' said Alice, in a
+hurry to change the subject.
+
+ `Ten hours the first day,' said the Mock Turtle: `nine the
+next, and so on.'
+
+ `What a curious plan!' exclaimed Alice.
+
+ `That's the reason they're called lessons,' the Gryphon
+remarked: `because they lessen from day to day.'
+
+ This was quite a new idea to Alice, and she thought it over a
+little before she made her next remark. `Then the eleventh day
+must have been a holiday?'
+
+ `Of course it was,' said the Mock Turtle.
+
+ `And how did you manage on the twelfth?' Alice went on eagerly.
+
+ `That's enough about lessons,' the Gryphon interrupted in a
+very decided tone: `tell her something about the games now.'
+
+
+
+ CHAPTER X
+
+ The Lobster Quadrille
+
+
+ The Mock Turtle sighed deeply, and drew the back of one flapper
+across his eyes. He looked at Alice, and tried to speak, but for
+a minute or two sobs choked his voice. `Same as if he had a bone
+in his throat,' said the Gryphon: and it set to work shaking him
+and punching him in the back. At last the Mock Turtle recovered
+his voice, and, with tears running down his cheeks, he went on
+again:--
+
+ `You may not have lived much under the sea--' (`I haven't,'
+said Alice)--`and perhaps you were never even introduced to a lobster--'
+(Alice began to say `I once tasted--' but checked herself hastily,
+and said `No, never') `--so you can have no idea what a delightful
+thing a Lobster Quadrille is!'
+
+ `No, indeed,' said Alice. `What sort of a dance is it?'
+
+ `Why,' said the Gryphon, `you first form into a line along the
+sea-shore--'
+
+ `Two lines!' cried the Mock Turtle. `Seals, turtles, salmon,
+and so on; then, when you've cleared all the jelly-fish out of
+the way--'
+
+ `THAT generally takes some time,' interrupted the Gryphon.
+
+ `--you advance twice--'
+
+ `Each with a lobster as a partner!' cried the Gryphon.
+
+ `Of course,' the Mock Turtle said: `advance twice, set to
+partners--'
+
+ `--change lobsters, and retire in same order,' continued the
+Gryphon.
+
+ `Then, you know,' the Mock Turtle went on, `you throw the--'
+
+ `The lobsters!' shouted the Gryphon, with a bound into the air.
+
+ `--as far out to sea as you can--'
+
+ `Swim after them!' screamed the Gryphon.
+
+ `Turn a somersault in the sea!' cried the Mock Turtle,
+capering wildly about.
+
+ `Back to land again, and that's all the first figure,' said the
+Mock Turtle, suddenly dropping his voice; and the two creatures,
+who had been jumping about like mad things all this time, sat
+down again very sadly and quietly, and looked at Alice.
+
+ `It must be a very pretty dance,' said Alice timidly.
+
+ `Would you like to see a little of it?' said the Mock Turtle.
+
+ `Very much indeed,' said Alice.
+
+ `Come, let's try the first figure!' said the Mock Turtle to the
+Gryphon. `We can do without lobsters, you know. Which shall
+sing?'
+
+ `Oh, YOU sing,' said the Gryphon. `I've forgotten the words.'
+
+ So they began solemnly dancing round and round Alice, every now
+and then treading on her toes when they passed too close, and
+waving their forepaws to mark the time, while the Mock Turtle
+sang this, very slowly and sadly:--
+
+
+`"Will you walk a little faster?" said a whiting to a snail.
+"There's a porpoise close behind us, and he's treading on my
+ tail.
+See how eagerly the lobsters and the turtles all advance!
+They are waiting on the shingle--will you come and join the
+dance?
+
+Will you, won't you, will you, won't you, will you join the
+dance?
+Will you, won't you, will you, won't you, won't you join the
+dance?
+
+
+"You can really have no notion how delightful it will be
+When they take us up and throw us, with the lobsters, out to
+ sea!"
+But the snail replied "Too far, too far!" and gave a look
+ askance--
+Said he thanked the whiting kindly, but he would not join the
+ dance.
+ Would not, could not, would not, could not, would not join
+ the dance.
+ Would not, could not, would not, could not, could not join
+ the dance.
+
+`"What matters it how far we go?" his scaly friend replied.
+"There is another shore, you know, upon the other side.
+The further off from England the nearer is to France--
+Then turn not pale, beloved snail, but come and join the dance.
+
+ Will you, won't you, will you, won't you, will you join the
+ dance?
+ Will you, won't you, will you, won't you, won't you join the
+ dance?"'
+
+
+
+ `Thank you, it's a very interesting dance to watch,' said
+Alice, feeling very glad that it was over at last: `and I do so
+like that curious song about the whiting!'
+
+ `Oh, as to the whiting,' said the Mock Turtle, `they--you've
+seen them, of course?'
+
+ `Yes,' said Alice, `I've often seen them at dinn--' she
+checked herself hastily.
+
+ `I don't know where Dinn may be,' said the Mock Turtle, `but
+if you've seen them so often, of course you know what they're
+like.'
+
+ `I believe so,' Alice replied thoughtfully. `They have their
+tails in their mouths--and they're all over crumbs.'
+
+ `You're wrong about the crumbs,' said the Mock Turtle:
+`crumbs would all wash off in the sea. But they HAVE their tails
+in their mouths; and the reason is--' here the Mock Turtle
+yawned and shut his eyes.--`Tell her about the reason and all
+that,' he said to the Gryphon.
+
+ `The reason is,' said the Gryphon, `that they WOULD go with
+the lobsters to the dance. So they got thrown out to sea. So
+they had to fall a long way. So they got their tails fast in
+their mouths. So they couldn't get them out again. That's all.'
+
+ `Thank you,' said Alice, `it's very interesting. I never knew
+so much about a whiting before.'
+
+ `I can tell you more than that, if you like,' said the
+Gryphon. `Do you know why it's called a whiting?'
+
+ `I never thought about it,' said Alice. `Why?'
+
+ `IT DOES THE BOOTS AND SHOES.' the Gryphon replied very
+solemnly.
+
+ Alice was thoroughly puzzled. `Does the boots and shoes!' she
+repeated in a wondering tone.
+
+ `Why, what are YOUR shoes done with?' said the Gryphon. `I
+mean, what makes them so shiny?'
+
+ Alice looked down at them, and considered a little before she
+gave her answer. `They're done with blacking, I believe.'
+
+ `Boots and shoes under the sea,' the Gryphon went on in a deep
+voice, `are done with a whiting. Now you know.'
+
+ `And what are they made of?' Alice asked in a tone of great
+curiosity.
+
+ `Soles and eels, of course,' the Gryphon replied rather
+impatiently: `any shrimp could have told you that.'
+
+ `If I'd been the whiting,' said Alice, whose thoughts were
+still running on the song, `I'd have said to the porpoise, "Keep
+back, please: we don't want YOU with us!"'
+
+ `They were obliged to have him with them,' the Mock Turtle
+said: `no wise fish would go anywhere without a porpoise.'
+
+ `Wouldn't it really?' said Alice in a tone of great surprise.
+
+ `Of course not,' said the Mock Turtle: `why, if a fish came
+to ME, and told me he was going a journey, I should say "With
+what porpoise?"'
+
+ `Don't you mean "purpose"?' said Alice.
+
+ `I mean what I say,' the Mock Turtle replied in an offended
+tone. And the Gryphon added `Come, let's hear some of YOUR
+adventures.'
+
+ `I could tell you my adventures--beginning from this morning,'
+said Alice a little timidly: `but it's no use going back to
+yesterday, because I was a different person then.'
+
+ `Explain all that,' said the Mock Turtle.
+
+ `No, no! The adventures first,' said the Gryphon in an
+impatient tone: `explanations take such a dreadful time.'
+
+ So Alice began telling them her adventures from the time when
+she first saw the White Rabbit. She was a little nervous about
+it just at first, the two creatures got so close to her, one on
+each side, and opened their eyes and mouths so VERY wide, but she
+gained courage as she went on. Her listeners were perfectly
+quiet till she got to the part about her repeating `YOU ARE OLD,
+FATHER WILLIAM,' to the Caterpillar, and the words all coming
+different, and then the Mock Turtle drew a long breath, and said
+`That's very curious.'
+
+ `It's all about as curious as it can be,' said the Gryphon.
+
+ `It all came different!' the Mock Turtle repeated
+thoughtfully. `I should like to hear her try and repeat
+something now. Tell her to begin.' He looked at the Gryphon as
+if he thought it had some kind of authority over Alice.
+
+ `Stand up and repeat "'TIS THE VOICE OF THE SLUGGARD,"' said
+the Gryphon.
+
+ `How the creatures order one about, and make one repeat
+lessons!' thought Alice; `I might as well be at school at once.'
+However, she got up, and began to repeat it, but her head was so
+full of the Lobster Quadrille, that she hardly knew what she was
+saying, and the words came very queer indeed:--
+
+ `'Tis the voice of the Lobster; I heard him declare,
+ "You have baked me too brown, I must sugar my hair."
+ As a duck with its eyelids, so he with his nose
+ Trims his belt and his buttons, and turns out his toes.'
+
+ [later editions continued as follows
+ When the sands are all dry, he is gay as a lark,
+ And will talk in contemptuous tones of the Shark,
+ But, when the tide rises and sharks are around,
+ His voice has a timid and tremulous sound.]
+
+ `That's different from what I used to say when I was a child,'
+said the Gryphon.
+
+ `Well, I never heard it before,' said the Mock Turtle; `but it
+sounds uncommon nonsense.'
+
+ Alice said nothing; she had sat down with her face in her
+hands, wondering if anything would EVER happen in a natural way
+again.
+
+ `I should like to have it explained,' said the Mock Turtle.
+
+ `She can't explain it,' said the Gryphon hastily. `Go on with
+the next verse.'
+
+ `But about his toes?' the Mock Turtle persisted. `How COULD
+he turn them out with his nose, you know?'
+
+ `It's the first position in dancing.' Alice said; but was
+dreadfully puzzled by the whole thing, and longed to change the
+subject.
+
+ `Go on with the next verse,' the Gryphon repeated impatiently:
+`it begins "I passed by his garden."'
+
+ Alice did not dare to disobey, though she felt sure it would
+all come wrong, and she went on in a trembling voice:--
+
+ `I passed by his garden, and marked, with one eye,
+ How the Owl and the Panther were sharing a pie--'
+
+ [later editions continued as follows
+ The Panther took pie-crust, and gravy, and meat,
+ While the Owl had the dish as its share of the treat.
+ When the pie was all finished, the Owl, as a boon,
+ Was kindly permitted to pocket the spoon:
+ While the Panther received knife and fork with a growl,
+ And concluded the banquet--]
+
+ `What IS the use of repeating all that stuff,' the Mock Turtle
+interrupted, `if you don't explain it as you go on? It's by far
+the most confusing thing I ever heard!'
+
+ `Yes, I think you'd better leave off,' said the Gryphon: and
+Alice was only too glad to do so.
+
+ `Shall we try another figure of the Lobster Quadrille?' the
+Gryphon went on. `Or would you like the Mock Turtle to sing you
+a song?'
+
+ `Oh, a song, please, if the Mock Turtle would be so kind,'
+Alice replied, so eagerly that the Gryphon said, in a rather
+offended tone, `Hm! No accounting for tastes! Sing her "Turtle
+Soup," will you, old fellow?'
+
+ The Mock Turtle sighed deeply, and began, in a voice sometimes
+choked with sobs, to sing this:--
+
+
+ `Beautiful Soup, so rich and green,
+ Waiting in a hot tureen!
+ Who for such dainties would not stoop?
+ Soup of the evening, beautiful Soup!
+ Soup of the evening, beautiful Soup!
+ Beau--ootiful Soo--oop!
+ Beau--ootiful Soo--oop!
+ Soo--oop of the e--e--evening,
+ Beautiful, beautiful Soup!
+
+ `Beautiful Soup! Who cares for fish,
+ Game, or any other dish?
+ Who would not give all else for two p
+ ennyworth only of beautiful Soup?
+ Pennyworth only of beautiful Soup?
+ Beau--ootiful Soo--oop!
+ Beau--ootiful Soo--oop!
+ Soo--oop of the e--e--evening,
+ Beautiful, beauti--FUL SOUP!'
+
+ `Chorus again!' cried the Gryphon, and the Mock Turtle had
+just begun to repeat it, when a cry of `The trial's beginning!'
+was heard in the distance.
+
+ `Come on!' cried the Gryphon, and, taking Alice by the hand,
+it hurried off, without waiting for the end of the song.
+
+ `What trial is it?' Alice panted as she ran; but the Gryphon
+only answered `Come on!' and ran the faster, while more and more
+faintly came, carried on the breeze that followed them, the
+melancholy words:--
+
+ `Soo--oop of the e--e--evening,
+ Beautiful, beautiful Soup!'
+
+
+
+ CHAPTER XI
+
+ Who Stole the Tarts?
+
+
+ The King and Queen of Hearts were seated on their throne when
+they arrived, with a great crowd assembled about them--all sorts
+of little birds and beasts, as well as the whole pack of cards:
+the Knave was standing before them, in chains, with a soldier on
+each side to guard him; and near the King was the White Rabbit,
+with a trumpet in one hand, and a scroll of parchment in the
+other. In the very middle of the court was a table, with a large
+dish of tarts upon it: they looked so good, that it made Alice
+quite hungry to look at them--`I wish they'd get the trial done,'
+she thought, `and hand round the refreshments!' But there seemed
+to be no chance of this, so she began looking at everything about
+her, to pass away the time.
+
+ Alice had never been in a court of justice before, but she had
+read about them in books, and she was quite pleased to find that
+she knew the name of nearly everything there. `That's the
+judge,' she said to herself, `because of his great wig.'
+
+ The judge, by the way, was the King; and as he wore his crown
+over the wig, (look at the frontispiece if you want to see how he
+did it,) he did not look at all comfortable, and it was certainly
+not becoming.
+
+ `And that's the jury-box,' thought Alice, `and those twelve
+creatures,' (she was obliged to say `creatures,' you see, because
+some of them were animals, and some were birds,) `I suppose they
+are the jurors.' She said this last word two or three times over
+to herself, being rather proud of it: for she thought, and
+rightly too, that very few little girls of her age knew the
+meaning of it at all. However, `jury-men' would have done just
+as well.
+
+ The twelve jurors were all writing very busily on slates.
+`What are they doing?' Alice whispered to the Gryphon. `They
+can't have anything to put down yet, before the trial's begun.'
+
+ `They're putting down their names,' the Gryphon whispered in
+reply, `for fear they should forget them before the end of the
+trial.'
+
+ `Stupid things!' Alice began in a loud, indignant voice, but
+she stopped hastily, for the White Rabbit cried out, `Silence in
+the court!' and the King put on his spectacles and looked
+anxiously round, to make out who was talking.
+
+ Alice could see, as well as if she were looking over their
+shoulders, that all the jurors were writing down `stupid things!'
+on their slates, and she could even make out that one of them
+didn't know how to spell `stupid,' and that he had to ask his
+neighbour to tell him. `A nice muddle their slates'll be in
+before the trial's over!' thought Alice.
+
+ One of the jurors had a pencil that squeaked. This of course,
+Alice could not stand, and she went round the court and got
+behind him, and very soon found an opportunity of taking it
+away. She did it so quickly that the poor little juror (it was
+Bill, the Lizard) could not make out at all what had become of
+it; so, after hunting all about for it, he was obliged to write
+with one finger for the rest of the day; and this was of very
+little use, as it left no mark on the slate.
+
+ `Herald, read the accusation!' said the King.
+
+ On this the White Rabbit blew three blasts on the trumpet, and
+then unrolled the parchment scroll, and read as follows:--
+
+ `The Queen of Hearts, she made some tarts,
+ All on a summer day:
+ The Knave of Hearts, he stole those tarts,
+ And took them quite away!'
+
+ `Consider your verdict,' the King said to the jury.
+
+ `Not yet, not yet!' the Rabbit hastily interrupted. `There's
+a great deal to come before that!'
+
+ `Call the first witness,' said the King; and the White Rabbit
+blew three blasts on the trumpet, and called out, `First
+witness!'
+
+ The first witness was the Hatter. He came in with a teacup in
+one hand and a piece of bread-and-butter in the other. `I beg
+pardon, your Majesty,' he began, `for bringing these in: but I
+hadn't quite finished my tea when I was sent for.'
+
+ `You ought to have finished,' said the King. `When did you
+begin?'
+
+ The Hatter looked at the March Hare, who had followed him into
+the court, arm-in-arm with the Dormouse. `Fourteenth of March, I
+think it was,' he said.
+
+ `Fifteenth,' said the March Hare.
+
+ `Sixteenth,' added the Dormouse.
+
+ `Write that down,' the King said to the jury, and the jury
+eagerly wrote down all three dates on their slates, and then
+added them up, and reduced the answer to shillings and pence.
+
+ `Take off your hat,' the King said to the Hatter.
+
+ `It isn't mine,' said the Hatter.
+
+ `Stolen!' the King exclaimed, turning to the jury, who
+instantly made a memorandum of the fact.
+
+ `I keep them to sell,' the Hatter added as an explanation;
+`I've none of my own. I'm a hatter.'
+
+ Here the Queen put on her spectacles, and began staring at the
+Hatter, who turned pale and fidgeted.
+
+ `Give your evidence,' said the King; `and don't be nervous, or
+I'll have you executed on the spot.'
+
+ This did not seem to encourage the witness at all: he kept
+shifting from one foot to the other, looking uneasily at the
+Queen, and in his confusion he bit a large piece out of his
+teacup instead of the bread-and-butter.
+
+ Just at this moment Alice felt a very curious sensation, which
+puzzled her a good deal until she made out what it was: she was
+beginning to grow larger again, and she thought at first she
+would get up and leave the court; but on second thoughts she
+decided to remain where she was as long as there was room for
+her.
+
+ `I wish you wouldn't squeeze so.' said the Dormouse, who was
+sitting next to her. `I can hardly breathe.'
+
+ `I can't help it,' said Alice very meekly: `I'm growing.'
+
+ `You've no right to grow here,' said the Dormouse.
+
+ `Don't talk nonsense,' said Alice more boldly: `you know
+you're growing too.'
+
+ `Yes, but I grow at a reasonable pace,' said the Dormouse:
+`not in that ridiculous fashion.' And he got up very sulkily
+and crossed over to the other side of the court.
+
+ All this time the Queen had never left off staring at the
+Hatter, and, just as the Dormouse crossed the court, she said to
+one of the officers of the court, `Bring me the list of the
+singers in the last concert!' on which the wretched Hatter
+trembled so, that he shook both his shoes off.
+
+ `Give your evidence,' the King repeated angrily, `or I'll have
+you executed, whether you're nervous or not.'
+
+ `I'm a poor man, your Majesty,' the Hatter began, in a
+trembling voice, `--and I hadn't begun my tea--not above a week
+or so--and what with the bread-and-butter getting so thin--and
+the twinkling of the tea--'
+
+ `The twinkling of the what?' said the King.
+
+ `It began with the tea,' the Hatter replied.
+
+ `Of course twinkling begins with a T!' said the King sharply.
+`Do you take me for a dunce? Go on!'
+
+ `I'm a poor man,' the Hatter went on, `and most things
+twinkled after that--only the March Hare said--'
+
+ `I didn't!' the March Hare interrupted in a great hurry.
+
+ `You did!' said the Hatter.
+
+ `I deny it!' said the March Hare.
+
+ `He denies it,' said the King: `leave out that part.'
+
+ `Well, at any rate, the Dormouse said--' the Hatter went on,
+looking anxiously round to see if he would deny it too: but the
+Dormouse denied nothing, being fast asleep.
+
+ `After that,' continued the Hatter, `I cut some more bread-
+and-butter--'
+
+ `But what did the Dormouse say?' one of the jury asked.
+
+ `That I can't remember,' said the Hatter.
+
+ `You MUST remember,' remarked the King, `or I'll have you
+executed.'
+
+ The miserable Hatter dropped his teacup and bread-and-butter,
+and went down on one knee. `I'm a poor man, your Majesty,' he
+began.
+
+ `You're a very poor speaker,' said the King.
+
+ Here one of the guinea-pigs cheered, and was immediately
+suppressed by the officers of the court. (As that is rather a
+hard word, I will just explain to you how it was done. They had
+a large canvas bag, which tied up at the mouth with strings:
+into this they slipped the guinea-pig, head first, and then sat
+upon it.)
+
+ `I'm glad I've seen that done,' thought Alice. `I've so often
+read in the newspapers, at the end of trials, "There was some
+attempts at applause, which was immediately suppressed by the
+officers of the court," and I never understood what it meant
+till now.'
+
+ `If that's all you know about it, you may stand down,'
+continued the King.
+
+ `I can't go no lower,' said the Hatter: `I'm on the floor, as
+it is.'
+
+ `Then you may SIT down,' the King replied.
+
+ Here the other guinea-pig cheered, and was suppressed.
+
+ `Come, that finished the guinea-pigs!' thought Alice. `Now we
+shall get on better.'
+
+ `I'd rather finish my tea,' said the Hatter, with an anxious
+look at the Queen, who was reading the list of singers.
+
+ `You may go,' said the King, and the Hatter hurriedly left the
+court, without even waiting to put his shoes on.
+
+ `--and just take his head off outside,' the Queen added to one
+of the officers: but the Hatter was out of sight before the
+officer could get to the door.
+
+ `Call the next witness!' said the King.
+
+ The next witness was the Duchess's cook. She carried the
+pepper-box in her hand, and Alice guessed who it was, even before
+she got into the court, by the way the people near the door began
+sneezing all at once.
+
+ `Give your evidence,' said the King.
+
+ `Shan't,' said the cook.
+
+ The King looked anxiously at the White Rabbit, who said in a
+low voice, `Your Majesty must cross-examine THIS witness.'
+
+ `Well, if I must, I must,' the King said, with a melancholy
+air, and, after folding his arms and frowning at the cook till
+his eyes were nearly out of sight, he said in a deep voice, `What
+are tarts made of?'
+
+ `Pepper, mostly,' said the cook.
+
+ `Treacle,' said a sleepy voice behind her.
+
+ `Collar that Dormouse,' the Queen shrieked out. `Behead that
+Dormouse! Turn that Dormouse out of court! Suppress him! Pinch
+him! Off with his whiskers!'
+
+ For some minutes the whole court was in confusion, getting the
+Dormouse turned out, and, by the time they had settled down
+again, the cook had disappeared.
+
+ `Never mind!' said the King, with an air of great relief.
+`Call the next witness.' And he added in an undertone to the
+Queen, `Really, my dear, YOU must cross-examine the next witness.
+It quite makes my forehead ache!'
+
+ Alice watched the White Rabbit as he fumbled over the list,
+feeling very curious to see what the next witness would be like,
+`--for they haven't got much evidence YET,' she said to herself.
+Imagine her surprise, when the White Rabbit read out, at the top
+of his shrill little voice, the name `Alice!'
+
+
+
+ CHAPTER XII
+
+ Alice's Evidence
+
+
+ `Here!' cried Alice, quite forgetting in the flurry of the
+moment how large she had grown in the last few minutes, and she
+jumped up in such a hurry that she tipped over the jury-box with
+the edge of her skirt, upsetting all the jurymen on to the heads
+of the crowd below, and there they lay sprawling about, reminding
+her very much of a globe of goldfish she had accidentally upset
+the week before.
+
+ `Oh, I BEG your pardon!' she exclaimed in a tone of great
+dismay, and began picking them up again as quickly as she could,
+for the accident of the goldfish kept running in her head, and
+she had a vague sort of idea that they must be collected at once
+and put back into the jury-box, or they would die.
+
+ `The trial cannot proceed,' said the King in a very grave
+voice, `until all the jurymen are back in their proper places--
+ALL,' he repeated with great emphasis, looking hard at Alice as
+he said do.
+
+ Alice looked at the jury-box, and saw that, in her haste, she
+had put the Lizard in head downwards, and the poor little thing
+was waving its tail about in a melancholy way, being quite unable
+to move. She soon got it out again, and put it right; `not that
+it signifies much,' she said to herself; `I should think it
+would be QUITE as much use in the trial one way up as the other.'
+
+ As soon as the jury had a little recovered from the shock of
+being upset, and their slates and pencils had been found and
+handed back to them, they set to work very diligently to write
+out a history of the accident, all except the Lizard, who seemed
+too much overcome to do anything but sit with its mouth open,
+gazing up into the roof of the court.
+
+ `What do you know about this business?' the King said to
+Alice.
+
+ `Nothing,' said Alice.
+
+ `Nothing WHATEVER?' persisted the King.
+
+ `Nothing whatever,' said Alice.
+
+ `That's very important,' the King said, turning to the jury.
+They were just beginning to write this down on their slates, when
+the White Rabbit interrupted: `UNimportant, your Majesty means,
+of course,' he said in a very respectful tone, but frowning and
+making faces at him as he spoke.
+
+ `UNimportant, of course, I meant,' the King hastily said, and
+went on to himself in an undertone, `important--unimportant--
+unimportant--important--' as if he were trying which word
+sounded best.
+
+ Some of the jury wrote it down `important,' and some
+`unimportant.' Alice could see this, as she was near enough to
+look over their slates; `but it doesn't matter a bit,' she
+thought to herself.
+
+ At this moment the King, who had been for some time busily
+writing in his note-book, cackled out `Silence!' and read out
+from his book, `Rule Forty-two. ALL PERSONS MORE THAN A MILE
+HIGH TO LEAVE THE COURT.'
+
+ Everybody looked at Alice.
+
+ `I'M not a mile high,' said Alice.
+
+ `You are,' said the King.
+
+ `Nearly two miles high,' added the Queen.
+
+ `Well, I shan't go, at any rate,' said Alice: `besides,
+that's not a regular rule: you invented it just now.'
+
+ `It's the oldest rule in the book,' said the King.
+
+ `Then it ought to be Number One,' said Alice.
+
+ The King turned pale, and shut his note-book hastily.
+`Consider your verdict,' he said to the jury, in a low, trembling
+voice.
+
+ `There's more evidence to come yet, please your Majesty,' said
+the White Rabbit, jumping up in a great hurry; `this paper has
+just been picked up.'
+
+ `What's in it?' said the Queen.
+
+ `I haven't opened it yet,' said the White Rabbit, `but it seems
+to be a letter, written by the prisoner to--to somebody.'
+
+ `It must have been that,' said the King, `unless it was
+written to nobody, which isn't usual, you know.'
+
+ `Who is it directed to?' said one of the jurymen.
+
+ `It isn't directed at all,' said the White Rabbit; `in fact,
+there's nothing written on the OUTSIDE.' He unfolded the paper
+as he spoke, and added `It isn't a letter, after all: it's a set
+of verses.'
+
+ `Are they in the prisoner's handwriting?' asked another of
+they jurymen.
+
+ `No, they're not,' said the White Rabbit, `and that's the
+queerest thing about it.' (The jury all looked puzzled.)
+
+ `He must have imitated somebody else's hand,' said the King.
+(The jury all brightened up again.)
+
+ `Please your Majesty,' said the Knave, `I didn't write it, and
+they can't prove I did: there's no name signed at the end.'
+
+ `If you didn't sign it,' said the King, `that only makes the
+matter worse. You MUST have meant some mischief, or else you'd
+have signed your name like an honest man.'
+
+ There was a general clapping of hands at this: it was the
+first really clever thing the King had said that day.
+
+ `That PROVES his guilt,' said the Queen.
+
+ `It proves nothing of the sort!' said Alice. `Why, you don't
+even know what they're about!'
+
+ `Read them,' said the King.
+
+ The White Rabbit put on his spectacles. `Where shall I begin,
+please your Majesty?' he asked.
+
+ `Begin at the beginning,' the King said gravely, `and go on
+till you come to the end: then stop.'
+
+ These were the verses the White Rabbit read:--
+
+ `They told me you had been to her,
+ And mentioned me to him:
+ She gave me a good character,
+ But said I could not swim.
+
+ He sent them word I had not gone
+ (We know it to be true):
+ If she should push the matter on,
+ What would become of you?
+
+ I gave her one, they gave him two,
+ You gave us three or more;
+ They all returned from him to you,
+ Though they were mine before.
+
+ If I or she should chance to be
+ Involved in this affair,
+ He trusts to you to set them free,
+ Exactly as we were.
+
+ My notion was that you had been
+ (Before she had this fit)
+ An obstacle that came between
+ Him, and ourselves, and it.
+
+ Don't let him know she liked them best,
+ For this must ever be
+ A secret, kept from all the rest,
+ Between yourself and me.'
+
+ `That's the most important piece of evidence we've heard yet,'
+said the King, rubbing his hands; `so now let the jury--'
+
+ `If any one of them can explain it,' said Alice, (she had
+grown so large in the last few minutes that she wasn't a bit
+afraid of interrupting him,) `I'll give him sixpence. _I_ don't
+believe there's an atom of meaning in it.'
+
+ The jury all wrote down on their slates, `SHE doesn't believe
+there's an atom of meaning in it,' but none of them attempted to
+explain the paper.
+
+ `If there's no meaning in it,' said the King, `that saves a
+world of trouble, you know, as we needn't try to find any. And
+yet I don't know,' he went on, spreading out the verses on his
+knee, and looking at them with one eye; `I seem to see some
+meaning in them, after all. "--SAID I COULD NOT SWIM--" you
+can't swim, can you?' he added, turning to the Knave.
+
+ The Knave shook his head sadly. `Do I look like it?' he said.
+(Which he certainly did NOT, being made entirely of cardboard.)
+
+ `All right, so far,' said the King, and he went on muttering
+over the verses to himself: `"WE KNOW IT TO BE TRUE--" that's
+the jury, of course-- "I GAVE HER ONE, THEY GAVE HIM TWO--" why,
+that must be what he did with the tarts, you know--'
+
+ `But, it goes on "THEY ALL RETURNED FROM HIM TO YOU,"' said
+Alice.
+
+ `Why, there they are!' said the King triumphantly, pointing to
+the tarts on the table. `Nothing can be clearer than THAT.
+Then again--"BEFORE SHE HAD THIS FIT--" you never had fits, my
+dear, I think?' he said to the Queen.
+
+ `Never!' said the Queen furiously, throwing an inkstand at the
+Lizard as she spoke. (The unfortunate little Bill had left off
+writing on his slate with one finger, as he found it made no
+mark; but he now hastily began again, using the ink, that was
+trickling down his face, as long as it lasted.)
+
+ `Then the words don't FIT you,' said the King, looking round
+the court with a smile. There was a dead silence.
+
+ `It's a pun!' the King added in an offended tone, and
+everybody laughed, `Let the jury consider their verdict,' the
+King said, for about the twentieth time that day.
+
+ `No, no!' said the Queen. `Sentence first--verdict afterwards.'
+
+ `Stuff and nonsense!' said Alice loudly. `The idea of having
+the sentence first!'
+
+ `Hold your tongue!' said the Queen, turning purple.
+
+ `I won't!' said Alice.
+
+ `Off with her head!' the Queen shouted at the top of her voice.
+Nobody moved.
+
+ `Who cares for you?' said Alice, (she had grown to her full
+size by this time.) `You're nothing but a pack of cards!'
+
+ At this the whole pack rose up into the air, and came flying
+down upon her: she gave a little scream, half of fright and half
+of anger, and tried to beat them off, and found herself lying on
+the bank, with her head in the lap of her sister, who was gently
+brushing away some dead leaves that had fluttered down from the
+trees upon her face.
+
+ `Wake up, Alice dear!' said her sister; `Why, what a long
+sleep you've had!'
+
+ `Oh, I've had such a curious dream!' said Alice, and she told
+her sister, as well as she could remember them, all these strange
+Adventures of hers that you have just been reading about; and
+when she had finished, her sister kissed her, and said, `It WAS a
+curious dream, dear, certainly: but now run in to your tea; it's
+getting late.' So Alice got up and ran off, thinking while she
+ran, as well she might, what a wonderful dream it had been.
+
+ But her sister sat still just as she left her, leaning her
+head on her hand, watching the setting sun, and thinking of
+little Alice and all her wonderful Adventures, till she too began
+dreaming after a fashion, and this was her dream:--
+
+ First, she dreamed of little Alice herself, and once again the
+tiny hands were clasped upon her knee, and the bright eager eyes
+were looking up into hers--she could hear the very tones of her
+voice, and see that queer little toss of her head to keep back
+the wandering hair that WOULD always get into her eyes--and
+still as she listened, or seemed to listen, the whole place
+around her became alive the strange creatures of her little
+sister's dream.
+
+ The long grass rustled at her feet as the White Rabbit hurried
+by--the frightened Mouse splashed his way through the
+neighbouring pool--she could hear the rattle of the teacups as
+the March Hare and his friends shared their never-ending meal,
+and the shrill voice of the Queen ordering off her unfortunate
+guests to execution--once more the pig-baby was sneezing on the
+Duchess's knee, while plates and dishes crashed around it--once
+more the shriek of the Gryphon, the squeaking of the Lizard's
+slate-pencil, and the choking of the suppressed guinea-pigs,
+filled the air, mixed up with the distant sobs of the miserable
+Mock Turtle.
+
+ So she sat on, with closed eyes, and half believed herself in
+Wonderland, though she knew she had but to open them again, and
+all would change to dull reality--the grass would be only
+rustling in the wind, and the pool rippling to the waving of the
+reeds--the rattling teacups would change to tinkling sheep-
+bells, and the Queen's shrill cries to the voice of the shepherd
+boy--and the sneeze of the baby, the shriek of the Gryphon, and
+all thy other queer noises, would change (she knew) to the
+confused clamour of the busy farm-yard--while the lowing of the
+cattle in the distance would take the place of the Mock Turtle's
+heavy sobs.
+
+ Lastly, she pictured to herself how this same little sister of
+hers would, in the after-time, be herself a grown woman; and how
+she would keep, through all her riper years, the simple and
+loving heart of her childhood: and how she would gather about
+her other little children, and make THEIR eyes bright and eager
+with many a strange tale, perhaps even with the dream of
+Wonderland of long ago: and how she would feel with all their
+simple sorrows, and find a pleasure in all their simple joys,
+remembering her own child-life, and the happy summer days.
+
+ THE END
+
\ No newline at end of file diff --git a/snappy-1.1.0/testdata/asyoulik.txt b/snappy-1.1.0/testdata/asyoulik.txt new file mode 100644 index 0000000..88dc7b6 --- /dev/null +++ b/snappy-1.1.0/testdata/asyoulik.txt @@ -0,0 +1,4122 @@ + AS YOU LIKE IT + + + DRAMATIS PERSONAE + + +DUKE SENIOR living in banishment. + +DUKE FREDERICK his brother, an usurper of his dominions. + + +AMIENS | + | lords attending on the banished duke. +JAQUES | + + +LE BEAU a courtier attending upon Frederick. + +CHARLES wrestler to Frederick. + + +OLIVER | + | +JAQUES (JAQUES DE BOYS:) | sons of Sir Rowland de Boys. + | +ORLANDO | + + +ADAM | + | servants to Oliver. +DENNIS | + + +TOUCHSTONE a clown. + +SIR OLIVER MARTEXT a vicar. + + +CORIN | + | shepherds. +SILVIUS | + + +WILLIAM a country fellow in love with Audrey. + + A person representing HYMEN. (HYMEN:) + +ROSALIND daughter to the banished duke. + +CELIA daughter to Frederick. + +PHEBE a shepherdess. + +AUDREY a country wench. + + Lords, pages, and attendants, &c. + (Forester:) + (A Lord:) + (First Lord:) + (Second Lord:) + (First Page:) + (Second Page:) + + +SCENE Oliver's house; Duke Frederick's court; and the + Forest of Arden. + + + + + AS YOU LIKE IT + + +ACT I + + + +SCENE I Orchard of Oliver's house. + + + [Enter ORLANDO and ADAM] + +ORLANDO As I remember, Adam, it was upon this fashion + bequeathed me by will but poor a thousand crowns, + and, as thou sayest, charged my brother, on his + blessing, to breed me well: and there begins my + sadness. My brother Jaques he keeps at school, and + report speaks goldenly of his profit: for my part, + he keeps me rustically at home, or, to speak more + properly, stays me here at home unkept; for call you + that keeping for a gentleman of my birth, that + differs not from the stalling of an ox? His horses + are bred better; for, besides that they are fair + with their feeding, they are taught their manage, + and to that end riders dearly hired: but I, his + brother, gain nothing under him but growth; for the + which his animals on his dunghills are as much + bound to him as I. Besides this nothing that he so + plentifully gives me, the something that nature gave + me his countenance seems to take from me: he lets + me feed with his hinds, bars me the place of a + brother, and, as much as in him lies, mines my + gentility with my education. This is it, Adam, that + grieves me; and the spirit of my father, which I + think is within me, begins to mutiny against this + servitude: I will no longer endure it, though yet I + know no wise remedy how to avoid it. + +ADAM Yonder comes my master, your brother. + +ORLANDO Go apart, Adam, and thou shalt hear how he will + shake me up. + + [Enter OLIVER] + +OLIVER Now, sir! what make you here? + +ORLANDO Nothing: I am not taught to make any thing. + +OLIVER What mar you then, sir? + +ORLANDO Marry, sir, I am helping you to mar that which God + made, a poor unworthy brother of yours, with idleness. + +OLIVER Marry, sir, be better employed, and be naught awhile. + +ORLANDO Shall I keep your hogs and eat husks with them? + What prodigal portion have I spent, that I should + come to such penury? + +OLIVER Know you where your are, sir? + +ORLANDO O, sir, very well; here in your orchard. + +OLIVER Know you before whom, sir? + +ORLANDO Ay, better than him I am before knows me. I know + you are my eldest brother; and, in the gentle + condition of blood, you should so know me. The + courtesy of nations allows you my better, in that + you are the first-born; but the same tradition + takes not away my blood, were there twenty brothers + betwixt us: I have as much of my father in me as + you; albeit, I confess, your coming before me is + nearer to his reverence. + +OLIVER What, boy! + +ORLANDO Come, come, elder brother, you are too young in this. + +OLIVER Wilt thou lay hands on me, villain? + +ORLANDO I am no villain; I am the youngest son of Sir + Rowland de Boys; he was my father, and he is thrice + a villain that says such a father begot villains. + Wert thou not my brother, I would not take this hand + from thy throat till this other had pulled out thy + tongue for saying so: thou hast railed on thyself. + +ADAM Sweet masters, be patient: for your father's + remembrance, be at accord. + +OLIVER Let me go, I say. + +ORLANDO I will not, till I please: you shall hear me. My + father charged you in his will to give me good + education: you have trained me like a peasant, + obscuring and hiding from me all gentleman-like + qualities. The spirit of my father grows strong in + me, and I will no longer endure it: therefore allow + me such exercises as may become a gentleman, or + give me the poor allottery my father left me by + testament; with that I will go buy my fortunes. + +OLIVER And what wilt thou do? beg, when that is spent? + Well, sir, get you in: I will not long be troubled + with you; you shall have some part of your will: I + pray you, leave me. + +ORLANDO I will no further offend you than becomes me for my good. + +OLIVER Get you with him, you old dog. + +ADAM Is 'old dog' my reward? Most true, I have lost my + teeth in your service. God be with my old master! + he would not have spoke such a word. + + [Exeunt ORLANDO and ADAM] + +OLIVER Is it even so? begin you to grow upon me? I will + physic your rankness, and yet give no thousand + crowns neither. Holla, Dennis! + + [Enter DENNIS] + +DENNIS Calls your worship? + +OLIVER Was not Charles, the duke's wrestler, here to speak with me? + +DENNIS So please you, he is here at the door and importunes + access to you. + +OLIVER Call him in. + + [Exit DENNIS] + + 'Twill be a good way; and to-morrow the wrestling is. + + [Enter CHARLES] + +CHARLES Good morrow to your worship. + +OLIVER Good Monsieur Charles, what's the new news at the + new court? + +CHARLES There's no news at the court, sir, but the old news: + that is, the old duke is banished by his younger + brother the new duke; and three or four loving lords + have put themselves into voluntary exile with him, + whose lands and revenues enrich the new duke; + therefore he gives them good leave to wander. + +OLIVER Can you tell if Rosalind, the duke's daughter, be + banished with her father? + +CHARLES O, no; for the duke's daughter, her cousin, so loves + her, being ever from their cradles bred together, + that she would have followed her exile, or have died + to stay behind her. She is at the court, and no + less beloved of her uncle than his own daughter; and + never two ladies loved as they do. + +OLIVER Where will the old duke live? + +CHARLES They say he is already in the forest of Arden, and + a many merry men with him; and there they live like + the old Robin Hood of England: they say many young + gentlemen flock to him every day, and fleet the time + carelessly, as they did in the golden world. + +OLIVER What, you wrestle to-morrow before the new duke? + +CHARLES Marry, do I, sir; and I came to acquaint you with a + matter. I am given, sir, secretly to understand + that your younger brother Orlando hath a disposition + to come in disguised against me to try a fall. + To-morrow, sir, I wrestle for my credit; and he that + escapes me without some broken limb shall acquit him + well. Your brother is but young and tender; and, + for your love, I would be loath to foil him, as I + must, for my own honour, if he come in: therefore, + out of my love to you, I came hither to acquaint you + withal, that either you might stay him from his + intendment or brook such disgrace well as he shall + run into, in that it is a thing of his own search + and altogether against my will. + +OLIVER Charles, I thank thee for thy love to me, which + thou shalt find I will most kindly requite. I had + myself notice of my brother's purpose herein and + have by underhand means laboured to dissuade him from + it, but he is resolute. I'll tell thee, Charles: + it is the stubbornest young fellow of France, full + of ambition, an envious emulator of every man's + good parts, a secret and villanous contriver against + me his natural brother: therefore use thy + discretion; I had as lief thou didst break his neck + as his finger. And thou wert best look to't; for if + thou dost him any slight disgrace or if he do not + mightily grace himself on thee, he will practise + against thee by poison, entrap thee by some + treacherous device and never leave thee till he + hath ta'en thy life by some indirect means or other; + for, I assure thee, and almost with tears I speak + it, there is not one so young and so villanous this + day living. I speak but brotherly of him; but + should I anatomize him to thee as he is, I must + blush and weep and thou must look pale and wonder. + +CHARLES I am heartily glad I came hither to you. If he come + to-morrow, I'll give him his payment: if ever he go + alone again, I'll never wrestle for prize more: and + so God keep your worship! + +OLIVER Farewell, good Charles. + + [Exit CHARLES] + + Now will I stir this gamester: I hope I shall see + an end of him; for my soul, yet I know not why, + hates nothing more than he. Yet he's gentle, never + schooled and yet learned, full of noble device, of + all sorts enchantingly beloved, and indeed so much + in the heart of the world, and especially of my own + people, who best know him, that I am altogether + misprised: but it shall not be so long; this + wrestler shall clear all: nothing remains but that + I kindle the boy thither; which now I'll go about. + + [Exit] + + + + + AS YOU LIKE IT + + +ACT I + + + +SCENE II Lawn before the Duke's palace. + + + [Enter CELIA and ROSALIND] + +CELIA I pray thee, Rosalind, sweet my coz, be merry. + +ROSALIND Dear Celia, I show more mirth than I am mistress of; + and would you yet I were merrier? Unless you could + teach me to forget a banished father, you must not + learn me how to remember any extraordinary pleasure. + +CELIA Herein I see thou lovest me not with the full weight + that I love thee. If my uncle, thy banished father, + had banished thy uncle, the duke my father, so thou + hadst been still with me, I could have taught my + love to take thy father for mine: so wouldst thou, + if the truth of thy love to me were so righteously + tempered as mine is to thee. + +ROSALIND Well, I will forget the condition of my estate, to + rejoice in yours. + +CELIA You know my father hath no child but I, nor none is + like to have: and, truly, when he dies, thou shalt + be his heir, for what he hath taken away from thy + father perforce, I will render thee again in + affection; by mine honour, I will; and when I break + that oath, let me turn monster: therefore, my + sweet Rose, my dear Rose, be merry. + +ROSALIND From henceforth I will, coz, and devise sports. Let + me see; what think you of falling in love? + +CELIA Marry, I prithee, do, to make sport withal: but + love no man in good earnest; nor no further in sport + neither than with safety of a pure blush thou mayst + in honour come off again. + +ROSALIND What shall be our sport, then? + +CELIA Let us sit and mock the good housewife Fortune from + her wheel, that her gifts may henceforth be bestowed equally. + +ROSALIND I would we could do so, for her benefits are + mightily misplaced, and the bountiful blind woman + doth most mistake in her gifts to women. + +CELIA 'Tis true; for those that she makes fair she scarce + makes honest, and those that she makes honest she + makes very ill-favouredly. + +ROSALIND Nay, now thou goest from Fortune's office to + Nature's: Fortune reigns in gifts of the world, + not in the lineaments of Nature. + + [Enter TOUCHSTONE] + +CELIA No? when Nature hath made a fair creature, may she + not by Fortune fall into the fire? Though Nature + hath given us wit to flout at Fortune, hath not + Fortune sent in this fool to cut off the argument? + +ROSALIND Indeed, there is Fortune too hard for Nature, when + Fortune makes Nature's natural the cutter-off of + Nature's wit. + +CELIA Peradventure this is not Fortune's work neither, but + Nature's; who perceiveth our natural wits too dull + to reason of such goddesses and hath sent this + natural for our whetstone; for always the dulness of + the fool is the whetstone of the wits. How now, + wit! whither wander you? + +TOUCHSTONE Mistress, you must come away to your father. + +CELIA Were you made the messenger? + +TOUCHSTONE No, by mine honour, but I was bid to come for you. + +ROSALIND Where learned you that oath, fool? + +TOUCHSTONE Of a certain knight that swore by his honour they + were good pancakes and swore by his honour the + mustard was naught: now I'll stand to it, the + pancakes were naught and the mustard was good, and + yet was not the knight forsworn. + +CELIA How prove you that, in the great heap of your + knowledge? + +ROSALIND Ay, marry, now unmuzzle your wisdom. + +TOUCHSTONE Stand you both forth now: stroke your chins, and + swear by your beards that I am a knave. + +CELIA By our beards, if we had them, thou art. + +TOUCHSTONE By my knavery, if I had it, then I were; but if you + swear by that that is not, you are not forsworn: no + more was this knight swearing by his honour, for he + never had any; or if he had, he had sworn it away + before ever he saw those pancakes or that mustard. + +CELIA Prithee, who is't that thou meanest? + +TOUCHSTONE One that old Frederick, your father, loves. + +CELIA My father's love is enough to honour him: enough! + speak no more of him; you'll be whipped for taxation + one of these days. + +TOUCHSTONE The more pity, that fools may not speak wisely what + wise men do foolishly. + +CELIA By my troth, thou sayest true; for since the little + wit that fools have was silenced, the little foolery + that wise men have makes a great show. Here comes + Monsieur Le Beau. + +ROSALIND With his mouth full of news. + +CELIA Which he will put on us, as pigeons feed their young. + +ROSALIND Then shall we be news-crammed. + +CELIA All the better; we shall be the more marketable. + + [Enter LE BEAU] + + Bon jour, Monsieur Le Beau: what's the news? + +LE BEAU Fair princess, you have lost much good sport. + +CELIA Sport! of what colour? + +LE BEAU What colour, madam! how shall I answer you? + +ROSALIND As wit and fortune will. + +TOUCHSTONE Or as the Destinies decree. + +CELIA Well said: that was laid on with a trowel. + +TOUCHSTONE Nay, if I keep not my rank,-- + +ROSALIND Thou losest thy old smell. + +LE BEAU You amaze me, ladies: I would have told you of good + wrestling, which you have lost the sight of. + +ROSALIND You tell us the manner of the wrestling. + +LE BEAU I will tell you the beginning; and, if it please + your ladyships, you may see the end; for the best is + yet to do; and here, where you are, they are coming + to perform it. + +CELIA Well, the beginning, that is dead and buried. + +LE BEAU There comes an old man and his three sons,-- + +CELIA I could match this beginning with an old tale. + +LE BEAU Three proper young men, of excellent growth and presence. + +ROSALIND With bills on their necks, 'Be it known unto all men + by these presents.' + +LE BEAU The eldest of the three wrestled with Charles, the + duke's wrestler; which Charles in a moment threw him + and broke three of his ribs, that there is little + hope of life in him: so he served the second, and + so the third. Yonder they lie; the poor old man, + their father, making such pitiful dole over them + that all the beholders take his part with weeping. + +ROSALIND Alas! + +TOUCHSTONE But what is the sport, monsieur, that the ladies + have lost? + +LE BEAU Why, this that I speak of. + +TOUCHSTONE Thus men may grow wiser every day: it is the first + time that ever I heard breaking of ribs was sport + for ladies. + +CELIA Or I, I promise thee. + +ROSALIND But is there any else longs to see this broken music + in his sides? is there yet another dotes upon + rib-breaking? Shall we see this wrestling, cousin? + +LE BEAU You must, if you stay here; for here is the place + appointed for the wrestling, and they are ready to + perform it. + +CELIA Yonder, sure, they are coming: let us now stay and see it. + + [Flourish. Enter DUKE FREDERICK, Lords, ORLANDO, + CHARLES, and Attendants] + +DUKE FREDERICK Come on: since the youth will not be entreated, his + own peril on his forwardness. + +ROSALIND Is yonder the man? + +LE BEAU Even he, madam. + +CELIA Alas, he is too young! yet he looks successfully. + +DUKE FREDERICK How now, daughter and cousin! are you crept hither + to see the wrestling? + +ROSALIND Ay, my liege, so please you give us leave. + +DUKE FREDERICK You will take little delight in it, I can tell you; + there is such odds in the man. In pity of the + challenger's youth I would fain dissuade him, but he + will not be entreated. Speak to him, ladies; see if + you can move him. + +CELIA Call him hither, good Monsieur Le Beau. + +DUKE FREDERICK Do so: I'll not be by. + +LE BEAU Monsieur the challenger, the princesses call for you. + +ORLANDO I attend them with all respect and duty. + +ROSALIND Young man, have you challenged Charles the wrestler? + +ORLANDO No, fair princess; he is the general challenger: I + come but in, as others do, to try with him the + strength of my youth. + +CELIA Young gentleman, your spirits are too bold for your + years. You have seen cruel proof of this man's + strength: if you saw yourself with your eyes or + knew yourself with your judgment, the fear of your + adventure would counsel you to a more equal + enterprise. We pray you, for your own sake, to + embrace your own safety and give over this attempt. + +ROSALIND Do, young sir; your reputation shall not therefore + be misprised: we will make it our suit to the duke + that the wrestling might not go forward. + +ORLANDO I beseech you, punish me not with your hard + thoughts; wherein I confess me much guilty, to deny + so fair and excellent ladies any thing. But let + your fair eyes and gentle wishes go with me to my + trial: wherein if I be foiled, there is but one + shamed that was never gracious; if killed, but one + dead that was willing to be so: I shall do my + friends no wrong, for I have none to lament me, the + world no injury, for in it I have nothing; only in + the world I fill up a place, which may be better + supplied when I have made it empty. + +ROSALIND The little strength that I have, I would it were with you. + +CELIA And mine, to eke out hers. + +ROSALIND Fare you well: pray heaven I be deceived in you! + +CELIA Your heart's desires be with you! + +CHARLES Come, where is this young gallant that is so + desirous to lie with his mother earth? + +ORLANDO Ready, sir; but his will hath in it a more modest working. + +DUKE FREDERICK You shall try but one fall. + +CHARLES No, I warrant your grace, you shall not entreat him + to a second, that have so mightily persuaded him + from a first. + +ORLANDO An you mean to mock me after, you should not have + mocked me before: but come your ways. + +ROSALIND Now Hercules be thy speed, young man! + +CELIA I would I were invisible, to catch the strong + fellow by the leg. + + [They wrestle] + +ROSALIND O excellent young man! + +CELIA If I had a thunderbolt in mine eye, I can tell who + should down. + + [Shout. CHARLES is thrown] + +DUKE FREDERICK No more, no more. + +ORLANDO Yes, I beseech your grace: I am not yet well breathed. + +DUKE FREDERICK How dost thou, Charles? + +LE BEAU He cannot speak, my lord. + +DUKE FREDERICK Bear him away. What is thy name, young man? + +ORLANDO Orlando, my liege; the youngest son of Sir Rowland de Boys. + +DUKE FREDERICK I would thou hadst been son to some man else: + The world esteem'd thy father honourable, + But I did find him still mine enemy: + Thou shouldst have better pleased me with this deed, + Hadst thou descended from another house. + But fare thee well; thou art a gallant youth: + I would thou hadst told me of another father. + + [Exeunt DUKE FREDERICK, train, and LE BEAU] + +CELIA Were I my father, coz, would I do this? + +ORLANDO I am more proud to be Sir Rowland's son, + His youngest son; and would not change that calling, + To be adopted heir to Frederick. + +ROSALIND My father loved Sir Rowland as his soul, + And all the world was of my father's mind: + Had I before known this young man his son, + I should have given him tears unto entreaties, + Ere he should thus have ventured. + +CELIA Gentle cousin, + Let us go thank him and encourage him: + My father's rough and envious disposition + Sticks me at heart. Sir, you have well deserved: + If you do keep your promises in love + But justly, as you have exceeded all promise, + Your mistress shall be happy. + +ROSALIND Gentleman, + + [Giving him a chain from her neck] + + Wear this for me, one out of suits with fortune, + That could give more, but that her hand lacks means. + Shall we go, coz? + +CELIA Ay. Fare you well, fair gentleman. + +ORLANDO Can I not say, I thank you? My better parts + Are all thrown down, and that which here stands up + Is but a quintain, a mere lifeless block. + +ROSALIND He calls us back: my pride fell with my fortunes; + I'll ask him what he would. Did you call, sir? + Sir, you have wrestled well and overthrown + More than your enemies. + +CELIA Will you go, coz? + +ROSALIND Have with you. Fare you well. + + [Exeunt ROSALIND and CELIA] + +ORLANDO What passion hangs these weights upon my tongue? + I cannot speak to her, yet she urged conference. + O poor Orlando, thou art overthrown! + Or Charles or something weaker masters thee. + + [Re-enter LE BEAU] + +LE BEAU Good sir, I do in friendship counsel you + To leave this place. Albeit you have deserved + High commendation, true applause and love, + Yet such is now the duke's condition + That he misconstrues all that you have done. + The duke is humorous; what he is indeed, + More suits you to conceive than I to speak of. + +ORLANDO I thank you, sir: and, pray you, tell me this: + Which of the two was daughter of the duke + That here was at the wrestling? + +LE BEAU Neither his daughter, if we judge by manners; + But yet indeed the lesser is his daughter + The other is daughter to the banish'd duke, + And here detain'd by her usurping uncle, + To keep his daughter company; whose loves + Are dearer than the natural bond of sisters. + But I can tell you that of late this duke + Hath ta'en displeasure 'gainst his gentle niece, + Grounded upon no other argument + But that the people praise her for her virtues + And pity her for her good father's sake; + And, on my life, his malice 'gainst the lady + Will suddenly break forth. Sir, fare you well: + Hereafter, in a better world than this, + I shall desire more love and knowledge of you. + +ORLANDO I rest much bounden to you: fare you well. + + [Exit LE BEAU] + + Thus must I from the smoke into the smother; + From tyrant duke unto a tyrant brother: + But heavenly Rosalind! + + [Exit] + + + + + AS YOU LIKE IT + + +ACT I + + + +SCENE III A room in the palace. + + + [Enter CELIA and ROSALIND] + +CELIA Why, cousin! why, Rosalind! Cupid have mercy! not a word? + +ROSALIND Not one to throw at a dog. + +CELIA No, thy words are too precious to be cast away upon + curs; throw some of them at me; come, lame me with reasons. + +ROSALIND Then there were two cousins laid up; when the one + should be lamed with reasons and the other mad + without any. + +CELIA But is all this for your father? + +ROSALIND No, some of it is for my child's father. O, how + full of briers is this working-day world! + +CELIA They are but burs, cousin, thrown upon thee in + holiday foolery: if we walk not in the trodden + paths our very petticoats will catch them. + +ROSALIND I could shake them off my coat: these burs are in my heart. + +CELIA Hem them away. + +ROSALIND I would try, if I could cry 'hem' and have him. + +CELIA Come, come, wrestle with thy affections. + +ROSALIND O, they take the part of a better wrestler than myself! + +CELIA O, a good wish upon you! you will try in time, in + despite of a fall. But, turning these jests out of + service, let us talk in good earnest: is it + possible, on such a sudden, you should fall into so + strong a liking with old Sir Rowland's youngest son? + +ROSALIND The duke my father loved his father dearly. + +CELIA Doth it therefore ensue that you should love his son + dearly? By this kind of chase, I should hate him, + for my father hated his father dearly; yet I hate + not Orlando. + +ROSALIND No, faith, hate him not, for my sake. + +CELIA Why should I not? doth he not deserve well? + +ROSALIND Let me love him for that, and do you love him + because I do. Look, here comes the duke. + +CELIA With his eyes full of anger. + + [Enter DUKE FREDERICK, with Lords] + +DUKE FREDERICK Mistress, dispatch you with your safest haste + And get you from our court. + +ROSALIND Me, uncle? + +DUKE FREDERICK You, cousin + Within these ten days if that thou be'st found + So near our public court as twenty miles, + Thou diest for it. + +ROSALIND I do beseech your grace, + Let me the knowledge of my fault bear with me: + If with myself I hold intelligence + Or have acquaintance with mine own desires, + If that I do not dream or be not frantic,-- + As I do trust I am not--then, dear uncle, + Never so much as in a thought unborn + Did I offend your highness. + +DUKE FREDERICK Thus do all traitors: + If their purgation did consist in words, + They are as innocent as grace itself: + Let it suffice thee that I trust thee not. + +ROSALIND Yet your mistrust cannot make me a traitor: + Tell me whereon the likelihood depends. + +DUKE FREDERICK Thou art thy father's daughter; there's enough. + +ROSALIND So was I when your highness took his dukedom; + So was I when your highness banish'd him: + Treason is not inherited, my lord; + Or, if we did derive it from our friends, + What's that to me? my father was no traitor: + Then, good my liege, mistake me not so much + To think my poverty is treacherous. + +CELIA Dear sovereign, hear me speak. + +DUKE FREDERICK Ay, Celia; we stay'd her for your sake, + Else had she with her father ranged along. + +CELIA I did not then entreat to have her stay; + It was your pleasure and your own remorse: + I was too young that time to value her; + But now I know her: if she be a traitor, + Why so am I; we still have slept together, + Rose at an instant, learn'd, play'd, eat together, + And wheresoever we went, like Juno's swans, + Still we went coupled and inseparable. + +DUKE FREDERICK She is too subtle for thee; and her smoothness, + Her very silence and her patience + Speak to the people, and they pity her. + Thou art a fool: she robs thee of thy name; + And thou wilt show more bright and seem more virtuous + When she is gone. Then open not thy lips: + Firm and irrevocable is my doom + Which I have pass'd upon her; she is banish'd. + +CELIA Pronounce that sentence then on me, my liege: + I cannot live out of her company. + +DUKE FREDERICK You are a fool. You, niece, provide yourself: + If you outstay the time, upon mine honour, + And in the greatness of my word, you die. + + [Exeunt DUKE FREDERICK and Lords] + +CELIA O my poor Rosalind, whither wilt thou go? + Wilt thou change fathers? I will give thee mine. + I charge thee, be not thou more grieved than I am. + +ROSALIND I have more cause. + +CELIA Thou hast not, cousin; + Prithee be cheerful: know'st thou not, the duke + Hath banish'd me, his daughter? + +ROSALIND That he hath not. + +CELIA No, hath not? Rosalind lacks then the love + Which teacheth thee that thou and I am one: + Shall we be sunder'd? shall we part, sweet girl? + No: let my father seek another heir. + Therefore devise with me how we may fly, + Whither to go and what to bear with us; + And do not seek to take your change upon you, + To bear your griefs yourself and leave me out; + For, by this heaven, now at our sorrows pale, + Say what thou canst, I'll go along with thee. + +ROSALIND Why, whither shall we go? + +CELIA To seek my uncle in the forest of Arden. + +ROSALIND Alas, what danger will it be to us, + Maids as we are, to travel forth so far! + Beauty provoketh thieves sooner than gold. + +CELIA I'll put myself in poor and mean attire + And with a kind of umber smirch my face; + The like do you: so shall we pass along + And never stir assailants. + +ROSALIND Were it not better, + Because that I am more than common tall, + That I did suit me all points like a man? + A gallant curtle-axe upon my thigh, + A boar-spear in my hand; and--in my heart + Lie there what hidden woman's fear there will-- + We'll have a swashing and a martial outside, + As many other mannish cowards have + That do outface it with their semblances. + +CELIA What shall I call thee when thou art a man? + +ROSALIND I'll have no worse a name than Jove's own page; + And therefore look you call me Ganymede. + But what will you be call'd? + +CELIA Something that hath a reference to my state + No longer Celia, but Aliena. + +ROSALIND But, cousin, what if we assay'd to steal + The clownish fool out of your father's court? + Would he not be a comfort to our travel? + +CELIA He'll go along o'er the wide world with me; + Leave me alone to woo him. Let's away, + And get our jewels and our wealth together, + Devise the fittest time and safest way + To hide us from pursuit that will be made + After my flight. Now go we in content + To liberty and not to banishment. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT II + + + +SCENE I The Forest of Arden. + + + [Enter DUKE SENIOR, AMIENS, and two or three Lords, + like foresters] + +DUKE SENIOR Now, my co-mates and brothers in exile, + Hath not old custom made this life more sweet + Than that of painted pomp? Are not these woods + More free from peril than the envious court? + Here feel we but the penalty of Adam, + The seasons' difference, as the icy fang + And churlish chiding of the winter's wind, + Which, when it bites and blows upon my body, + Even till I shrink with cold, I smile and say + 'This is no flattery: these are counsellors + That feelingly persuade me what I am.' + Sweet are the uses of adversity, + Which, like the toad, ugly and venomous, + Wears yet a precious jewel in his head; + And this our life exempt from public haunt + Finds tongues in trees, books in the running brooks, + Sermons in stones and good in every thing. + I would not change it. + +AMIENS Happy is your grace, + That can translate the stubbornness of fortune + Into so quiet and so sweet a style. + +DUKE SENIOR Come, shall we go and kill us venison? + And yet it irks me the poor dappled fools, + Being native burghers of this desert city, + Should in their own confines with forked heads + Have their round haunches gored. + +First Lord Indeed, my lord, + The melancholy Jaques grieves at that, + And, in that kind, swears you do more usurp + Than doth your brother that hath banish'd you. + To-day my Lord of Amiens and myself + Did steal behind him as he lay along + Under an oak whose antique root peeps out + Upon the brook that brawls along this wood: + To the which place a poor sequester'd stag, + That from the hunter's aim had ta'en a hurt, + Did come to languish, and indeed, my lord, + The wretched animal heaved forth such groans + That their discharge did stretch his leathern coat + Almost to bursting, and the big round tears + Coursed one another down his innocent nose + In piteous chase; and thus the hairy fool + Much marked of the melancholy Jaques, + Stood on the extremest verge of the swift brook, + Augmenting it with tears. + +DUKE SENIOR But what said Jaques? + Did he not moralize this spectacle? + +First Lord O, yes, into a thousand similes. + First, for his weeping into the needless stream; + 'Poor deer,' quoth he, 'thou makest a testament + As worldlings do, giving thy sum of more + To that which had too much:' then, being there alone, + Left and abandon'd of his velvet friends, + ''Tis right:' quoth he; 'thus misery doth part + The flux of company:' anon a careless herd, + Full of the pasture, jumps along by him + And never stays to greet him; 'Ay' quoth Jaques, + 'Sweep on, you fat and greasy citizens; + 'Tis just the fashion: wherefore do you look + Upon that poor and broken bankrupt there?' + Thus most invectively he pierceth through + The body of the country, city, court, + Yea, and of this our life, swearing that we + Are mere usurpers, tyrants and what's worse, + To fright the animals and to kill them up + In their assign'd and native dwelling-place. + +DUKE SENIOR And did you leave him in this contemplation? + +Second Lord We did, my lord, weeping and commenting + Upon the sobbing deer. + +DUKE SENIOR Show me the place: + I love to cope him in these sullen fits, + For then he's full of matter. + +First Lord I'll bring you to him straight. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT II + + + +SCENE II A room in the palace. + + + [Enter DUKE FREDERICK, with Lords] + +DUKE FREDERICK Can it be possible that no man saw them? + It cannot be: some villains of my court + Are of consent and sufferance in this. + +First Lord I cannot hear of any that did see her. + The ladies, her attendants of her chamber, + Saw her abed, and in the morning early + They found the bed untreasured of their mistress. + +Second Lord My lord, the roynish clown, at whom so oft + Your grace was wont to laugh, is also missing. + Hisperia, the princess' gentlewoman, + Confesses that she secretly o'erheard + Your daughter and her cousin much commend + The parts and graces of the wrestler + That did but lately foil the sinewy Charles; + And she believes, wherever they are gone, + That youth is surely in their company. + +DUKE FREDERICK Send to his brother; fetch that gallant hither; + If he be absent, bring his brother to me; + I'll make him find him: do this suddenly, + And let not search and inquisition quail + To bring again these foolish runaways. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT II + + + +SCENE III Before OLIVER'S house. + + + [Enter ORLANDO and ADAM, meeting] + +ORLANDO Who's there? + +ADAM What, my young master? O, my gentle master! + O my sweet master! O you memory + Of old Sir Rowland! why, what make you here? + Why are you virtuous? why do people love you? + And wherefore are you gentle, strong and valiant? + Why would you be so fond to overcome + The bonny priser of the humorous duke? + Your praise is come too swiftly home before you. + Know you not, master, to some kind of men + Their graces serve them but as enemies? + No more do yours: your virtues, gentle master, + Are sanctified and holy traitors to you. + O, what a world is this, when what is comely + Envenoms him that bears it! + +ORLANDO Why, what's the matter? + +ADAM O unhappy youth! + Come not within these doors; within this roof + The enemy of all your graces lives: + Your brother--no, no brother; yet the son-- + Yet not the son, I will not call him son + Of him I was about to call his father-- + Hath heard your praises, and this night he means + To burn the lodging where you use to lie + And you within it: if he fail of that, + He will have other means to cut you off. + I overheard him and his practises. + This is no place; this house is but a butchery: + Abhor it, fear it, do not enter it. + +ORLANDO Why, whither, Adam, wouldst thou have me go? + +ADAM No matter whither, so you come not here. + +ORLANDO What, wouldst thou have me go and beg my food? + Or with a base and boisterous sword enforce + A thievish living on the common road? + This I must do, or know not what to do: + Yet this I will not do, do how I can; + I rather will subject me to the malice + Of a diverted blood and bloody brother. + +ADAM But do not so. I have five hundred crowns, + The thrifty hire I saved under your father, + Which I did store to be my foster-nurse + When service should in my old limbs lie lame + And unregarded age in corners thrown: + Take that, and He that doth the ravens feed, + Yea, providently caters for the sparrow, + Be comfort to my age! Here is the gold; + And all this I give you. Let me be your servant: + Though I look old, yet I am strong and lusty; + For in my youth I never did apply + Hot and rebellious liquors in my blood, + Nor did not with unbashful forehead woo + The means of weakness and debility; + Therefore my age is as a lusty winter, + Frosty, but kindly: let me go with you; + I'll do the service of a younger man + In all your business and necessities. + +ORLANDO O good old man, how well in thee appears + The constant service of the antique world, + When service sweat for duty, not for meed! + Thou art not for the fashion of these times, + Where none will sweat but for promotion, + And having that, do choke their service up + Even with the having: it is not so with thee. + But, poor old man, thou prunest a rotten tree, + That cannot so much as a blossom yield + In lieu of all thy pains and husbandry + But come thy ways; well go along together, + And ere we have thy youthful wages spent, + We'll light upon some settled low content. + +ADAM Master, go on, and I will follow thee, + To the last gasp, with truth and loyalty. + From seventeen years till now almost fourscore + Here lived I, but now live here no more. + At seventeen years many their fortunes seek; + But at fourscore it is too late a week: + Yet fortune cannot recompense me better + Than to die well and not my master's debtor. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT II + + + +SCENE IV The Forest of Arden. + + + [Enter ROSALIND for Ganymede, CELIA for Aliena, + and TOUCHSTONE] + +ROSALIND O Jupiter, how weary are my spirits! + +TOUCHSTONE I care not for my spirits, if my legs were not weary. + +ROSALIND I could find in my heart to disgrace my man's + apparel and to cry like a woman; but I must comfort + the weaker vessel, as doublet and hose ought to show + itself courageous to petticoat: therefore courage, + good Aliena! + +CELIA I pray you, bear with me; I cannot go no further. + +TOUCHSTONE For my part, I had rather bear with you than bear + you; yet I should bear no cross if I did bear you, + for I think you have no money in your purse. + +ROSALIND Well, this is the forest of Arden. + +TOUCHSTONE Ay, now am I in Arden; the more fool I; when I was + at home, I was in a better place: but travellers + must be content. + +ROSALIND Ay, be so, good Touchstone. + + [Enter CORIN and SILVIUS] + + Look you, who comes here; a young man and an old in + solemn talk. + +CORIN That is the way to make her scorn you still. + +SILVIUS O Corin, that thou knew'st how I do love her! + +CORIN I partly guess; for I have loved ere now. + +SILVIUS No, Corin, being old, thou canst not guess, + Though in thy youth thou wast as true a lover + As ever sigh'd upon a midnight pillow: + But if thy love were ever like to mine-- + As sure I think did never man love so-- + How many actions most ridiculous + Hast thou been drawn to by thy fantasy? + +CORIN Into a thousand that I have forgotten. + +SILVIUS O, thou didst then ne'er love so heartily! + If thou remember'st not the slightest folly + That ever love did make thee run into, + Thou hast not loved: + Or if thou hast not sat as I do now, + Wearying thy hearer in thy mistress' praise, + Thou hast not loved: + Or if thou hast not broke from company + Abruptly, as my passion now makes me, + Thou hast not loved. + O Phebe, Phebe, Phebe! + + [Exit] + +ROSALIND Alas, poor shepherd! searching of thy wound, + I have by hard adventure found mine own. + +TOUCHSTONE And I mine. I remember, when I was in love I broke + my sword upon a stone and bid him take that for + coming a-night to Jane Smile; and I remember the + kissing of her batlet and the cow's dugs that her + pretty chopt hands had milked; and I remember the + wooing of a peascod instead of her, from whom I took + two cods and, giving her them again, said with + weeping tears 'Wear these for my sake.' We that are + true lovers run into strange capers; but as all is + mortal in nature, so is all nature in love mortal in folly. + +ROSALIND Thou speakest wiser than thou art ware of. + +TOUCHSTONE Nay, I shall ne'er be ware of mine own wit till I + break my shins against it. + +ROSALIND Jove, Jove! this shepherd's passion + Is much upon my fashion. + +TOUCHSTONE And mine; but it grows something stale with me. + +CELIA I pray you, one of you question yond man + If he for gold will give us any food: + I faint almost to death. + +TOUCHSTONE Holla, you clown! + +ROSALIND Peace, fool: he's not thy kinsman. + +CORIN Who calls? + +TOUCHSTONE Your betters, sir. + +CORIN Else are they very wretched. + +ROSALIND Peace, I say. Good even to you, friend. + +CORIN And to you, gentle sir, and to you all. + +ROSALIND I prithee, shepherd, if that love or gold + Can in this desert place buy entertainment, + Bring us where we may rest ourselves and feed: + Here's a young maid with travel much oppress'd + And faints for succor. + +CORIN Fair sir, I pity her + And wish, for her sake more than for mine own, + My fortunes were more able to relieve her; + But I am shepherd to another man + And do not shear the fleeces that I graze: + My master is of churlish disposition + And little recks to find the way to heaven + By doing deeds of hospitality: + Besides, his cote, his flocks and bounds of feed + Are now on sale, and at our sheepcote now, + By reason of his absence, there is nothing + That you will feed on; but what is, come see. + And in my voice most welcome shall you be. + +ROSALIND What is he that shall buy his flock and pasture? + +CORIN That young swain that you saw here but erewhile, + That little cares for buying any thing. + +ROSALIND I pray thee, if it stand with honesty, + Buy thou the cottage, pasture and the flock, + And thou shalt have to pay for it of us. + +CELIA And we will mend thy wages. I like this place. + And willingly could waste my time in it. + +CORIN Assuredly the thing is to be sold: + Go with me: if you like upon report + The soil, the profit and this kind of life, + I will your very faithful feeder be + And buy it with your gold right suddenly. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT II + + + +SCENE V The Forest. + + + [Enter AMIENS, JAQUES, and others] + + SONG. +AMIENS Under the greenwood tree + Who loves to lie with me, + And turn his merry note + Unto the sweet bird's throat, + Come hither, come hither, come hither: + Here shall he see No enemy + But winter and rough weather. + +JAQUES More, more, I prithee, more. + +AMIENS It will make you melancholy, Monsieur Jaques. + +JAQUES I thank it. More, I prithee, more. I can suck + melancholy out of a song, as a weasel sucks eggs. + More, I prithee, more. + +AMIENS My voice is ragged: I know I cannot please you. + +JAQUES I do not desire you to please me; I do desire you to + sing. Come, more; another stanzo: call you 'em stanzos? + +AMIENS What you will, Monsieur Jaques. + +JAQUES Nay, I care not for their names; they owe me + nothing. Will you sing? + +AMIENS More at your request than to please myself. + +JAQUES Well then, if ever I thank any man, I'll thank you; + but that they call compliment is like the encounter + of two dog-apes, and when a man thanks me heartily, + methinks I have given him a penny and he renders me + the beggarly thanks. Come, sing; and you that will + not, hold your tongues. + +AMIENS Well, I'll end the song. Sirs, cover the while; the + duke will drink under this tree. He hath been all + this day to look you. + +JAQUES And I have been all this day to avoid him. He is + too disputable for my company: I think of as many + matters as he, but I give heaven thanks and make no + boast of them. Come, warble, come. + + SONG. + Who doth ambition shun + + [All together here] + + And loves to live i' the sun, + Seeking the food he eats + And pleased with what he gets, + Come hither, come hither, come hither: + Here shall he see No enemy + But winter and rough weather. + +JAQUES I'll give you a verse to this note that I made + yesterday in despite of my invention. + +AMIENS And I'll sing it. + +JAQUES Thus it goes:-- + + If it do come to pass + That any man turn ass, + Leaving his wealth and ease, + A stubborn will to please, + Ducdame, ducdame, ducdame: + Here shall he see + Gross fools as he, + An if he will come to me. + +AMIENS What's that 'ducdame'? + +JAQUES 'Tis a Greek invocation, to call fools into a + circle. I'll go sleep, if I can; if I cannot, I'll + rail against all the first-born of Egypt. + +AMIENS And I'll go seek the duke: his banquet is prepared. + + [Exeunt severally] + + + + + AS YOU LIKE IT + + +ACT II + + + +SCENE VI The forest. + + + [Enter ORLANDO and ADAM] + +ADAM Dear master, I can go no further. O, I die for food! + Here lie I down, and measure out my grave. Farewell, + kind master. + +ORLANDO Why, how now, Adam! no greater heart in thee? Live + a little; comfort a little; cheer thyself a little. + If this uncouth forest yield any thing savage, I + will either be food for it or bring it for food to + thee. Thy conceit is nearer death than thy powers. + For my sake be comfortable; hold death awhile at + the arm's end: I will here be with thee presently; + and if I bring thee not something to eat, I will + give thee leave to die: but if thou diest before I + come, thou art a mocker of my labour. Well said! + thou lookest cheerly, and I'll be with thee quickly. + Yet thou liest in the bleak air: come, I will bear + thee to some shelter; and thou shalt not die for + lack of a dinner, if there live any thing in this + desert. Cheerly, good Adam! + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT II + + + +SCENE VII The forest. + + + [A table set out. Enter DUKE SENIOR, AMIENS, and + Lords like outlaws] + +DUKE SENIOR I think he be transform'd into a beast; + For I can no where find him like a man. + +First Lord My lord, he is but even now gone hence: + Here was he merry, hearing of a song. + +DUKE SENIOR If he, compact of jars, grow musical, + We shall have shortly discord in the spheres. + Go, seek him: tell him I would speak with him. + + [Enter JAQUES] + +First Lord He saves my labour by his own approach. + +DUKE SENIOR Why, how now, monsieur! what a life is this, + That your poor friends must woo your company? + What, you look merrily! + +JAQUES A fool, a fool! I met a fool i' the forest, + A motley fool; a miserable world! + As I do live by food, I met a fool + Who laid him down and bask'd him in the sun, + And rail'd on Lady Fortune in good terms, + In good set terms and yet a motley fool. + 'Good morrow, fool,' quoth I. 'No, sir,' quoth he, + 'Call me not fool till heaven hath sent me fortune:' + And then he drew a dial from his poke, + And, looking on it with lack-lustre eye, + Says very wisely, 'It is ten o'clock: + Thus we may see,' quoth he, 'how the world wags: + 'Tis but an hour ago since it was nine, + And after one hour more 'twill be eleven; + And so, from hour to hour, we ripe and ripe, + And then, from hour to hour, we rot and rot; + And thereby hangs a tale.' When I did hear + The motley fool thus moral on the time, + My lungs began to crow like chanticleer, + That fools should be so deep-contemplative, + And I did laugh sans intermission + An hour by his dial. O noble fool! + A worthy fool! Motley's the only wear. + +DUKE SENIOR What fool is this? + +JAQUES O worthy fool! One that hath been a courtier, + And says, if ladies be but young and fair, + They have the gift to know it: and in his brain, + Which is as dry as the remainder biscuit + After a voyage, he hath strange places cramm'd + With observation, the which he vents + In mangled forms. O that I were a fool! + I am ambitious for a motley coat. + +DUKE SENIOR Thou shalt have one. + +JAQUES It is my only suit; + Provided that you weed your better judgments + Of all opinion that grows rank in them + That I am wise. I must have liberty + Withal, as large a charter as the wind, + To blow on whom I please; for so fools have; + And they that are most galled with my folly, + They most must laugh. And why, sir, must they so? + The 'why' is plain as way to parish church: + He that a fool doth very wisely hit + Doth very foolishly, although he smart, + Not to seem senseless of the bob: if not, + The wise man's folly is anatomized + Even by the squandering glances of the fool. + Invest me in my motley; give me leave + To speak my mind, and I will through and through + Cleanse the foul body of the infected world, + If they will patiently receive my medicine. + +DUKE SENIOR Fie on thee! I can tell what thou wouldst do. + +JAQUES What, for a counter, would I do but good? + +DUKE SENIOR Most mischievous foul sin, in chiding sin: + For thou thyself hast been a libertine, + As sensual as the brutish sting itself; + And all the embossed sores and headed evils, + That thou with licence of free foot hast caught, + Wouldst thou disgorge into the general world. + +JAQUES Why, who cries out on pride, + That can therein tax any private party? + Doth it not flow as hugely as the sea, + Till that the weary very means do ebb? + What woman in the city do I name, + When that I say the city-woman bears + The cost of princes on unworthy shoulders? + Who can come in and say that I mean her, + When such a one as she such is her neighbour? + Or what is he of basest function + That says his bravery is not of my cost, + Thinking that I mean him, but therein suits + His folly to the mettle of my speech? + There then; how then? what then? Let me see wherein + My tongue hath wrong'd him: if it do him right, + Then he hath wrong'd himself; if he be free, + Why then my taxing like a wild-goose flies, + Unclaim'd of any man. But who comes here? + + [Enter ORLANDO, with his sword drawn] + +ORLANDO Forbear, and eat no more. + +JAQUES Why, I have eat none yet. + +ORLANDO Nor shalt not, till necessity be served. + +JAQUES Of what kind should this cock come of? + +DUKE SENIOR Art thou thus bolden'd, man, by thy distress, + Or else a rude despiser of good manners, + That in civility thou seem'st so empty? + +ORLANDO You touch'd my vein at first: the thorny point + Of bare distress hath ta'en from me the show + Of smooth civility: yet am I inland bred + And know some nurture. But forbear, I say: + He dies that touches any of this fruit + Till I and my affairs are answered. + +JAQUES An you will not be answered with reason, I must die. + +DUKE SENIOR What would you have? Your gentleness shall force + More than your force move us to gentleness. + +ORLANDO I almost die for food; and let me have it. + +DUKE SENIOR Sit down and feed, and welcome to our table. + +ORLANDO Speak you so gently? Pardon me, I pray you: + I thought that all things had been savage here; + And therefore put I on the countenance + Of stern commandment. But whate'er you are + That in this desert inaccessible, + Under the shade of melancholy boughs, + Lose and neglect the creeping hours of time + If ever you have look'd on better days, + If ever been where bells have knoll'd to church, + If ever sat at any good man's feast, + If ever from your eyelids wiped a tear + And know what 'tis to pity and be pitied, + Let gentleness my strong enforcement be: + In the which hope I blush, and hide my sword. + +DUKE SENIOR True is it that we have seen better days, + And have with holy bell been knoll'd to church + And sat at good men's feasts and wiped our eyes + Of drops that sacred pity hath engender'd: + And therefore sit you down in gentleness + And take upon command what help we have + That to your wanting may be minister'd. + +ORLANDO Then but forbear your food a little while, + Whiles, like a doe, I go to find my fawn + And give it food. There is an old poor man, + Who after me hath many a weary step + Limp'd in pure love: till he be first sufficed, + Oppress'd with two weak evils, age and hunger, + I will not touch a bit. + +DUKE SENIOR Go find him out, + And we will nothing waste till you return. + +ORLANDO I thank ye; and be blest for your good comfort! + + [Exit] + +DUKE SENIOR Thou seest we are not all alone unhappy: + This wide and universal theatre + Presents more woeful pageants than the scene + Wherein we play in. + +JAQUES All the world's a stage, + And all the men and women merely players: + They have their exits and their entrances; + And one man in his time plays many parts, + His acts being seven ages. At first the infant, + Mewling and puking in the nurse's arms. + And then the whining school-boy, with his satchel + And shining morning face, creeping like snail + Unwillingly to school. And then the lover, + Sighing like furnace, with a woeful ballad + Made to his mistress' eyebrow. Then a soldier, + Full of strange oaths and bearded like the pard, + Jealous in honour, sudden and quick in quarrel, + Seeking the bubble reputation + Even in the cannon's mouth. And then the justice, + In fair round belly with good capon lined, + With eyes severe and beard of formal cut, + Full of wise saws and modern instances; + And so he plays his part. The sixth age shifts + Into the lean and slipper'd pantaloon, + With spectacles on nose and pouch on side, + His youthful hose, well saved, a world too wide + For his shrunk shank; and his big manly voice, + Turning again toward childish treble, pipes + And whistles in his sound. Last scene of all, + That ends this strange eventful history, + Is second childishness and mere oblivion, + Sans teeth, sans eyes, sans taste, sans everything. + + [Re-enter ORLANDO, with ADAM] + +DUKE SENIOR Welcome. Set down your venerable burthen, + And let him feed. + +ORLANDO I thank you most for him. + +ADAM So had you need: + I scarce can speak to thank you for myself. + +DUKE SENIOR Welcome; fall to: I will not trouble you + As yet, to question you about your fortunes. + Give us some music; and, good cousin, sing. + + SONG. +AMIENS Blow, blow, thou winter wind. + Thou art not so unkind + As man's ingratitude; + Thy tooth is not so keen, + Because thou art not seen, + Although thy breath be rude. + Heigh-ho! sing, heigh-ho! unto the green holly: + Most friendship is feigning, most loving mere folly: + Then, heigh-ho, the holly! + This life is most jolly. + Freeze, freeze, thou bitter sky, + That dost not bite so nigh + As benefits forgot: + Though thou the waters warp, + Thy sting is not so sharp + As friend remember'd not. + Heigh-ho! sing, &c. + +DUKE SENIOR If that you were the good Sir Rowland's son, + As you have whisper'd faithfully you were, + And as mine eye doth his effigies witness + Most truly limn'd and living in your face, + Be truly welcome hither: I am the duke + That loved your father: the residue of your fortune, + Go to my cave and tell me. Good old man, + Thou art right welcome as thy master is. + Support him by the arm. Give me your hand, + And let me all your fortunes understand. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT III + + + +SCENE I A room in the palace. + + + [Enter DUKE FREDERICK, Lords, and OLIVER] + +DUKE FREDERICK Not see him since? Sir, sir, that cannot be: + But were I not the better part made mercy, + I should not seek an absent argument + Of my revenge, thou present. But look to it: + Find out thy brother, wheresoe'er he is; + Seek him with candle; bring him dead or living + Within this twelvemonth, or turn thou no more + To seek a living in our territory. + Thy lands and all things that thou dost call thine + Worth seizure do we seize into our hands, + Till thou canst quit thee by thy brothers mouth + Of what we think against thee. + +OLIVER O that your highness knew my heart in this! + I never loved my brother in my life. + +DUKE FREDERICK More villain thou. Well, push him out of doors; + And let my officers of such a nature + Make an extent upon his house and lands: + Do this expediently and turn him going. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT III + + + +SCENE II The forest. + + + [Enter ORLANDO, with a paper] + +ORLANDO Hang there, my verse, in witness of my love: + And thou, thrice-crowned queen of night, survey + With thy chaste eye, from thy pale sphere above, + Thy huntress' name that my full life doth sway. + O Rosalind! these trees shall be my books + And in their barks my thoughts I'll character; + That every eye which in this forest looks + Shall see thy virtue witness'd every where. + Run, run, Orlando; carve on every tree + The fair, the chaste and unexpressive she. + + [Exit] + + [Enter CORIN and TOUCHSTONE] + +CORIN And how like you this shepherd's life, Master Touchstone? + +TOUCHSTONE Truly, shepherd, in respect of itself, it is a good + life, but in respect that it is a shepherd's life, + it is naught. In respect that it is solitary, I + like it very well; but in respect that it is + private, it is a very vile life. Now, in respect it + is in the fields, it pleaseth me well; but in + respect it is not in the court, it is tedious. As + is it a spare life, look you, it fits my humour well; + but as there is no more plenty in it, it goes much + against my stomach. Hast any philosophy in thee, shepherd? + +CORIN No more but that I know the more one sickens the + worse at ease he is; and that he that wants money, + means and content is without three good friends; + that the property of rain is to wet and fire to + burn; that good pasture makes fat sheep, and that a + great cause of the night is lack of the sun; that + he that hath learned no wit by nature nor art may + complain of good breeding or comes of a very dull kindred. + +TOUCHSTONE Such a one is a natural philosopher. Wast ever in + court, shepherd? + +CORIN No, truly. + +TOUCHSTONE Then thou art damned. + +CORIN Nay, I hope. + +TOUCHSTONE Truly, thou art damned like an ill-roasted egg, all + on one side. + +CORIN For not being at court? Your reason. + +TOUCHSTONE Why, if thou never wast at court, thou never sawest + good manners; if thou never sawest good manners, + then thy manners must be wicked; and wickedness is + sin, and sin is damnation. Thou art in a parlous + state, shepherd. + +CORIN Not a whit, Touchstone: those that are good manners + at the court are as ridiculous in the country as the + behavior of the country is most mockable at the + court. You told me you salute not at the court, but + you kiss your hands: that courtesy would be + uncleanly, if courtiers were shepherds. + +TOUCHSTONE Instance, briefly; come, instance. + +CORIN Why, we are still handling our ewes, and their + fells, you know, are greasy. + +TOUCHSTONE Why, do not your courtier's hands sweat? and is not + the grease of a mutton as wholesome as the sweat of + a man? Shallow, shallow. A better instance, I say; come. + +CORIN Besides, our hands are hard. + +TOUCHSTONE Your lips will feel them the sooner. Shallow again. + A more sounder instance, come. + +CORIN And they are often tarred over with the surgery of + our sheep: and would you have us kiss tar? The + courtier's hands are perfumed with civet. + +TOUCHSTONE Most shallow man! thou worms-meat, in respect of a + good piece of flesh indeed! Learn of the wise, and + perpend: civet is of a baser birth than tar, the + very uncleanly flux of a cat. Mend the instance, shepherd. + +CORIN You have too courtly a wit for me: I'll rest. + +TOUCHSTONE Wilt thou rest damned? God help thee, shallow man! + God make incision in thee! thou art raw. + +CORIN Sir, I am a true labourer: I earn that I eat, get + that I wear, owe no man hate, envy no man's + happiness, glad of other men's good, content with my + harm, and the greatest of my pride is to see my ewes + graze and my lambs suck. + +TOUCHSTONE That is another simple sin in you, to bring the ewes + and the rams together and to offer to get your + living by the copulation of cattle; to be bawd to a + bell-wether, and to betray a she-lamb of a + twelvemonth to a crooked-pated, old, cuckoldly ram, + out of all reasonable match. If thou beest not + damned for this, the devil himself will have no + shepherds; I cannot see else how thou shouldst + 'scape. + +CORIN Here comes young Master Ganymede, my new mistress's brother. + + [Enter ROSALIND, with a paper, reading] + +ROSALIND From the east to western Ind, + No jewel is like Rosalind. + Her worth, being mounted on the wind, + Through all the world bears Rosalind. + All the pictures fairest lined + Are but black to Rosalind. + Let no fair be kept in mind + But the fair of Rosalind. + +TOUCHSTONE I'll rhyme you so eight years together, dinners and + suppers and sleeping-hours excepted: it is the + right butter-women's rank to market. + +ROSALIND Out, fool! + +TOUCHSTONE For a taste: + If a hart do lack a hind, + Let him seek out Rosalind. + If the cat will after kind, + So be sure will Rosalind. + Winter garments must be lined, + So must slender Rosalind. + They that reap must sheaf and bind; + Then to cart with Rosalind. + Sweetest nut hath sourest rind, + Such a nut is Rosalind. + He that sweetest rose will find + Must find love's prick and Rosalind. + This is the very false gallop of verses: why do you + infect yourself with them? + +ROSALIND Peace, you dull fool! I found them on a tree. + +TOUCHSTONE Truly, the tree yields bad fruit. + +ROSALIND I'll graff it with you, and then I shall graff it + with a medlar: then it will be the earliest fruit + i' the country; for you'll be rotten ere you be half + ripe, and that's the right virtue of the medlar. + +TOUCHSTONE You have said; but whether wisely or no, let the + forest judge. + + [Enter CELIA, with a writing] + +ROSALIND Peace! Here comes my sister, reading: stand aside. + +CELIA [Reads] + + Why should this a desert be? + For it is unpeopled? No: + Tongues I'll hang on every tree, + That shall civil sayings show: + Some, how brief the life of man + Runs his erring pilgrimage, + That the stretching of a span + Buckles in his sum of age; + Some, of violated vows + 'Twixt the souls of friend and friend: + But upon the fairest boughs, + Or at every sentence end, + Will I Rosalinda write, + Teaching all that read to know + The quintessence of every sprite + Heaven would in little show. + Therefore Heaven Nature charged + That one body should be fill'd + With all graces wide-enlarged: + Nature presently distill'd + Helen's cheek, but not her heart, + Cleopatra's majesty, + Atalanta's better part, + Sad Lucretia's modesty. + Thus Rosalind of many parts + By heavenly synod was devised, + Of many faces, eyes and hearts, + To have the touches dearest prized. + Heaven would that she these gifts should have, + And I to live and die her slave. + +ROSALIND O most gentle pulpiter! what tedious homily of love + have you wearied your parishioners withal, and never + cried 'Have patience, good people!' + +CELIA How now! back, friends! Shepherd, go off a little. + Go with him, sirrah. + +TOUCHSTONE Come, shepherd, let us make an honourable retreat; + though not with bag and baggage, yet with scrip and scrippage. + + [Exeunt CORIN and TOUCHSTONE] + +CELIA Didst thou hear these verses? + +ROSALIND O, yes, I heard them all, and more too; for some of + them had in them more feet than the verses would bear. + +CELIA That's no matter: the feet might bear the verses. + +ROSALIND Ay, but the feet were lame and could not bear + themselves without the verse and therefore stood + lamely in the verse. + +CELIA But didst thou hear without wondering how thy name + should be hanged and carved upon these trees? + +ROSALIND I was seven of the nine days out of the wonder + before you came; for look here what I found on a + palm-tree. I was never so be-rhymed since + Pythagoras' time, that I was an Irish rat, which I + can hardly remember. + +CELIA Trow you who hath done this? + +ROSALIND Is it a man? + +CELIA And a chain, that you once wore, about his neck. + Change you colour? + +ROSALIND I prithee, who? + +CELIA O Lord, Lord! it is a hard matter for friends to + meet; but mountains may be removed with earthquakes + and so encounter. + +ROSALIND Nay, but who is it? + +CELIA Is it possible? + +ROSALIND Nay, I prithee now with most petitionary vehemence, + tell me who it is. + +CELIA O wonderful, wonderful, and most wonderful + wonderful! and yet again wonderful, and after that, + out of all hooping! + +ROSALIND Good my complexion! dost thou think, though I am + caparisoned like a man, I have a doublet and hose in + my disposition? One inch of delay more is a + South-sea of discovery; I prithee, tell me who is it + quickly, and speak apace. I would thou couldst + stammer, that thou mightst pour this concealed man + out of thy mouth, as wine comes out of a narrow- + mouthed bottle, either too much at once, or none at + all. I prithee, take the cork out of thy mouth that + may drink thy tidings. + +CELIA So you may put a man in your belly. + +ROSALIND Is he of God's making? What manner of man? Is his + head worth a hat, or his chin worth a beard? + +CELIA Nay, he hath but a little beard. + +ROSALIND Why, God will send more, if the man will be + thankful: let me stay the growth of his beard, if + thou delay me not the knowledge of his chin. + +CELIA It is young Orlando, that tripped up the wrestler's + heels and your heart both in an instant. + +ROSALIND Nay, but the devil take mocking: speak, sad brow and + true maid. + +CELIA I' faith, coz, 'tis he. + +ROSALIND Orlando? + +CELIA Orlando. + +ROSALIND Alas the day! what shall I do with my doublet and + hose? What did he when thou sawest him? What said + he? How looked he? Wherein went he? What makes + him here? Did he ask for me? Where remains he? + How parted he with thee? and when shalt thou see + him again? Answer me in one word. + +CELIA You must borrow me Gargantua's mouth first: 'tis a + word too great for any mouth of this age's size. To + say ay and no to these particulars is more than to + answer in a catechism. + +ROSALIND But doth he know that I am in this forest and in + man's apparel? Looks he as freshly as he did the + day he wrestled? + +CELIA It is as easy to count atomies as to resolve the + propositions of a lover; but take a taste of my + finding him, and relish it with good observance. + I found him under a tree, like a dropped acorn. + +ROSALIND It may well be called Jove's tree, when it drops + forth such fruit. + +CELIA Give me audience, good madam. + +ROSALIND Proceed. + +CELIA There lay he, stretched along, like a wounded knight. + +ROSALIND Though it be pity to see such a sight, it well + becomes the ground. + +CELIA Cry 'holla' to thy tongue, I prithee; it curvets + unseasonably. He was furnished like a hunter. + +ROSALIND O, ominous! he comes to kill my heart. + +CELIA I would sing my song without a burden: thou bringest + me out of tune. + +ROSALIND Do you not know I am a woman? when I think, I must + speak. Sweet, say on. + +CELIA You bring me out. Soft! comes he not here? + + [Enter ORLANDO and JAQUES] + +ROSALIND 'Tis he: slink by, and note him. + +JAQUES I thank you for your company; but, good faith, I had + as lief have been myself alone. + +ORLANDO And so had I; but yet, for fashion sake, I thank you + too for your society. + +JAQUES God be wi' you: let's meet as little as we can. + +ORLANDO I do desire we may be better strangers. + +JAQUES I pray you, mar no more trees with writing + love-songs in their barks. + +ORLANDO I pray you, mar no more of my verses with reading + them ill-favouredly. + +JAQUES Rosalind is your love's name? + +ORLANDO Yes, just. + +JAQUES I do not like her name. + +ORLANDO There was no thought of pleasing you when she was + christened. + +JAQUES What stature is she of? + +ORLANDO Just as high as my heart. + +JAQUES You are full of pretty answers. Have you not been + acquainted with goldsmiths' wives, and conned them + out of rings? + +ORLANDO Not so; but I answer you right painted cloth, from + whence you have studied your questions. + +JAQUES You have a nimble wit: I think 'twas made of + Atalanta's heels. Will you sit down with me? and + we two will rail against our mistress the world and + all our misery. + +ORLANDO I will chide no breather in the world but myself, + against whom I know most faults. + +JAQUES The worst fault you have is to be in love. + +ORLANDO 'Tis a fault I will not change for your best virtue. + I am weary of you. + +JAQUES By my troth, I was seeking for a fool when I found + you. + +ORLANDO He is drowned in the brook: look but in, and you + shall see him. + +JAQUES There I shall see mine own figure. + +ORLANDO Which I take to be either a fool or a cipher. + +JAQUES I'll tarry no longer with you: farewell, good + Signior Love. + +ORLANDO I am glad of your departure: adieu, good Monsieur + Melancholy. + + [Exit JAQUES] + +ROSALIND [Aside to CELIA] I will speak to him, like a saucy + lackey and under that habit play the knave with him. + Do you hear, forester? + +ORLANDO Very well: what would you? + +ROSALIND I pray you, what is't o'clock? + +ORLANDO You should ask me what time o' day: there's no clock + in the forest. + +ROSALIND Then there is no true lover in the forest; else + sighing every minute and groaning every hour would + detect the lazy foot of Time as well as a clock. + +ORLANDO And why not the swift foot of Time? had not that + been as proper? + +ROSALIND By no means, sir: Time travels in divers paces with + divers persons. I'll tell you who Time ambles + withal, who Time trots withal, who Time gallops + withal and who he stands still withal. + +ORLANDO I prithee, who doth he trot withal? + +ROSALIND Marry, he trots hard with a young maid between the + contract of her marriage and the day it is + solemnized: if the interim be but a se'nnight, + Time's pace is so hard that it seems the length of + seven year. + +ORLANDO Who ambles Time withal? + +ROSALIND With a priest that lacks Latin and a rich man that + hath not the gout, for the one sleeps easily because + he cannot study, and the other lives merrily because + he feels no pain, the one lacking the burden of lean + and wasteful learning, the other knowing no burden + of heavy tedious penury; these Time ambles withal. + +ORLANDO Who doth he gallop withal? + +ROSALIND With a thief to the gallows, for though he go as + softly as foot can fall, he thinks himself too soon there. + +ORLANDO Who stays it still withal? + +ROSALIND With lawyers in the vacation, for they sleep between + term and term and then they perceive not how Time moves. + +ORLANDO Where dwell you, pretty youth? + +ROSALIND With this shepherdess, my sister; here in the + skirts of the forest, like fringe upon a petticoat. + +ORLANDO Are you native of this place? + +ROSALIND As the cony that you see dwell where she is kindled. + +ORLANDO Your accent is something finer than you could + purchase in so removed a dwelling. + +ROSALIND I have been told so of many: but indeed an old + religious uncle of mine taught me to speak, who was + in his youth an inland man; one that knew courtship + too well, for there he fell in love. I have heard + him read many lectures against it, and I thank God + I am not a woman, to be touched with so many + giddy offences as he hath generally taxed their + whole sex withal. + +ORLANDO Can you remember any of the principal evils that he + laid to the charge of women? + +ROSALIND There were none principal; they were all like one + another as half-pence are, every one fault seeming + monstrous till his fellow fault came to match it. + +ORLANDO I prithee, recount some of them. + +ROSALIND No, I will not cast away my physic but on those that + are sick. There is a man haunts the forest, that + abuses our young plants with carving 'Rosalind' on + their barks; hangs odes upon hawthorns and elegies + on brambles, all, forsooth, deifying the name of + Rosalind: if I could meet that fancy-monger I would + give him some good counsel, for he seems to have the + quotidian of love upon him. + +ORLANDO I am he that is so love-shaked: I pray you tell me + your remedy. + +ROSALIND There is none of my uncle's marks upon you: he + taught me how to know a man in love; in which cage + of rushes I am sure you are not prisoner. + +ORLANDO What were his marks? + +ROSALIND A lean cheek, which you have not, a blue eye and + sunken, which you have not, an unquestionable + spirit, which you have not, a beard neglected, + which you have not; but I pardon you for that, for + simply your having in beard is a younger brother's + revenue: then your hose should be ungartered, your + bonnet unbanded, your sleeve unbuttoned, your shoe + untied and every thing about you demonstrating a + careless desolation; but you are no such man; you + are rather point-device in your accoutrements as + loving yourself than seeming the lover of any other. + +ORLANDO Fair youth, I would I could make thee believe I love. + +ROSALIND Me believe it! you may as soon make her that you + love believe it; which, I warrant, she is apter to + do than to confess she does: that is one of the + points in the which women still give the lie to + their consciences. But, in good sooth, are you he + that hangs the verses on the trees, wherein Rosalind + is so admired? + +ORLANDO I swear to thee, youth, by the white hand of + Rosalind, I am that he, that unfortunate he. + +ROSALIND But are you so much in love as your rhymes speak? + +ORLANDO Neither rhyme nor reason can express how much. + +ROSALIND Love is merely a madness, and, I tell you, deserves + as well a dark house and a whip as madmen do: and + the reason why they are not so punished and cured + is, that the lunacy is so ordinary that the whippers + are in love too. Yet I profess curing it by counsel. + +ORLANDO Did you ever cure any so? + +ROSALIND Yes, one, and in this manner. He was to imagine me + his love, his mistress; and I set him every day to + woo me: at which time would I, being but a moonish + youth, grieve, be effeminate, changeable, longing + and liking, proud, fantastical, apish, shallow, + inconstant, full of tears, full of smiles, for every + passion something and for no passion truly any + thing, as boys and women are for the most part + cattle of this colour; would now like him, now loathe + him; then entertain him, then forswear him; now weep + for him, then spit at him; that I drave my suitor + from his mad humour of love to a living humour of + madness; which was, to forswear the full stream of + the world, and to live in a nook merely monastic. + And thus I cured him; and this way will I take upon + me to wash your liver as clean as a sound sheep's + heart, that there shall not be one spot of love in't. + +ORLANDO I would not be cured, youth. + +ROSALIND I would cure you, if you would but call me Rosalind + and come every day to my cote and woo me. + +ORLANDO Now, by the faith of my love, I will: tell me + where it is. + +ROSALIND Go with me to it and I'll show it you and by the way + you shall tell me where in the forest you live. + Will you go? + +ORLANDO With all my heart, good youth. + +ROSALIND Nay you must call me Rosalind. Come, sister, will you go? + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT III + + + +SCENE III The forest. + + + [Enter TOUCHSTONE and AUDREY; JAQUES behind] + +TOUCHSTONE Come apace, good Audrey: I will fetch up your + goats, Audrey. And how, Audrey? am I the man yet? + doth my simple feature content you? + +AUDREY Your features! Lord warrant us! what features! + +TOUCHSTONE I am here with thee and thy goats, as the most + capricious poet, honest Ovid, was among the Goths. + +JAQUES [Aside] O knowledge ill-inhabited, worse than Jove + in a thatched house! + +TOUCHSTONE When a man's verses cannot be understood, nor a + man's good wit seconded with the forward child + Understanding, it strikes a man more dead than a + great reckoning in a little room. Truly, I would + the gods had made thee poetical. + +AUDREY I do not know what 'poetical' is: is it honest in + deed and word? is it a true thing? + +TOUCHSTONE No, truly; for the truest poetry is the most + feigning; and lovers are given to poetry, and what + they swear in poetry may be said as lovers they do feign. + +AUDREY Do you wish then that the gods had made me poetical? + +TOUCHSTONE I do, truly; for thou swearest to me thou art + honest: now, if thou wert a poet, I might have some + hope thou didst feign. + +AUDREY Would you not have me honest? + +TOUCHSTONE No, truly, unless thou wert hard-favoured; for + honesty coupled to beauty is to have honey a sauce to sugar. + +JAQUES [Aside] A material fool! + +AUDREY Well, I am not fair; and therefore I pray the gods + make me honest. + +TOUCHSTONE Truly, and to cast away honesty upon a foul slut + were to put good meat into an unclean dish. + +AUDREY I am not a slut, though I thank the gods I am foul. + +TOUCHSTONE Well, praised be the gods for thy foulness! + sluttishness may come hereafter. But be it as it may + be, I will marry thee, and to that end I have been + with Sir Oliver Martext, the vicar of the next + village, who hath promised to meet me in this place + of the forest and to couple us. + +JAQUES [Aside] I would fain see this meeting. + +AUDREY Well, the gods give us joy! + +TOUCHSTONE Amen. A man may, if he were of a fearful heart, + stagger in this attempt; for here we have no temple + but the wood, no assembly but horn-beasts. But what + though? Courage! As horns are odious, they are + necessary. It is said, 'many a man knows no end of + his goods:' right; many a man has good horns, and + knows no end of them. Well, that is the dowry of + his wife; 'tis none of his own getting. Horns? + Even so. Poor men alone? No, no; the noblest deer + hath them as huge as the rascal. Is the single man + therefore blessed? No: as a walled town is more + worthier than a village, so is the forehead of a + married man more honourable than the bare brow of a + bachelor; and by how much defence is better than no + skill, by so much is a horn more precious than to + want. Here comes Sir Oliver. + + [Enter SIR OLIVER MARTEXT] + + Sir Oliver Martext, you are well met: will you + dispatch us here under this tree, or shall we go + with you to your chapel? + +SIR OLIVER MARTEXT Is there none here to give the woman? + +TOUCHSTONE I will not take her on gift of any man. + +SIR OLIVER MARTEXT Truly, she must be given, or the marriage is not lawful. + +JAQUES [Advancing] + + Proceed, proceed I'll give her. + +TOUCHSTONE Good even, good Master What-ye-call't: how do you, + sir? You are very well met: God 'ild you for your + last company: I am very glad to see you: even a + toy in hand here, sir: nay, pray be covered. + +JAQUES Will you be married, motley? + +TOUCHSTONE As the ox hath his bow, sir, the horse his curb and + the falcon her bells, so man hath his desires; and + as pigeons bill, so wedlock would be nibbling. + +JAQUES And will you, being a man of your breeding, be + married under a bush like a beggar? Get you to + church, and have a good priest that can tell you + what marriage is: this fellow will but join you + together as they join wainscot; then one of you will + prove a shrunk panel and, like green timber, warp, warp. + +TOUCHSTONE [Aside] I am not in the mind but I were better to be + married of him than of another: for he is not like + to marry me well; and not being well married, it + will be a good excuse for me hereafter to leave my wife. + +JAQUES Go thou with me, and let me counsel thee. + +TOUCHSTONE 'Come, sweet Audrey: + We must be married, or we must live in bawdry. + Farewell, good Master Oliver: not,-- + O sweet Oliver, + O brave Oliver, + Leave me not behind thee: but,-- + Wind away, + Begone, I say, + I will not to wedding with thee. + + [Exeunt JAQUES, TOUCHSTONE and AUDREY] + +SIR OLIVER MARTEXT 'Tis no matter: ne'er a fantastical knave of them + all shall flout me out of my calling. + + [Exit] + + + + + AS YOU LIKE IT + + +ACT III + + + +SCENE IV The forest. + + + [Enter ROSALIND and CELIA] + +ROSALIND Never talk to me; I will weep. + +CELIA Do, I prithee; but yet have the grace to consider + that tears do not become a man. + +ROSALIND But have I not cause to weep? + +CELIA As good cause as one would desire; therefore weep. + +ROSALIND His very hair is of the dissembling colour. + +CELIA Something browner than Judas's marry, his kisses are + Judas's own children. + +ROSALIND I' faith, his hair is of a good colour. + +CELIA An excellent colour: your chestnut was ever the only colour. + +ROSALIND And his kissing is as full of sanctity as the touch + of holy bread. + +CELIA He hath bought a pair of cast lips of Diana: a nun + of winter's sisterhood kisses not more religiously; + the very ice of chastity is in them. + +ROSALIND But why did he swear he would come this morning, and + comes not? + +CELIA Nay, certainly, there is no truth in him. + +ROSALIND Do you think so? + +CELIA Yes; I think he is not a pick-purse nor a + horse-stealer, but for his verity in love, I do + think him as concave as a covered goblet or a + worm-eaten nut. + +ROSALIND Not true in love? + +CELIA Yes, when he is in; but I think he is not in. + +ROSALIND You have heard him swear downright he was. + +CELIA 'Was' is not 'is:' besides, the oath of a lover is + no stronger than the word of a tapster; they are + both the confirmer of false reckonings. He attends + here in the forest on the duke your father. + +ROSALIND I met the duke yesterday and had much question with + him: he asked me of what parentage I was; I told + him, of as good as he; so he laughed and let me go. + But what talk we of fathers, when there is such a + man as Orlando? + +CELIA O, that's a brave man! he writes brave verses, + speaks brave words, swears brave oaths and breaks + them bravely, quite traverse, athwart the heart of + his lover; as a puisny tilter, that spurs his horse + but on one side, breaks his staff like a noble + goose: but all's brave that youth mounts and folly + guides. Who comes here? + + [Enter CORIN] + +CORIN Mistress and master, you have oft inquired + After the shepherd that complain'd of love, + Who you saw sitting by me on the turf, + Praising the proud disdainful shepherdess + That was his mistress. + +CELIA Well, and what of him? + +CORIN If you will see a pageant truly play'd, + Between the pale complexion of true love + And the red glow of scorn and proud disdain, + Go hence a little and I shall conduct you, + If you will mark it. + +ROSALIND O, come, let us remove: + The sight of lovers feedeth those in love. + Bring us to this sight, and you shall say + I'll prove a busy actor in their play. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT III + + + +SCENE V Another part of the forest. + + + [Enter SILVIUS and PHEBE] + +SILVIUS Sweet Phebe, do not scorn me; do not, Phebe; + Say that you love me not, but say not so + In bitterness. The common executioner, + Whose heart the accustom'd sight of death makes hard, + Falls not the axe upon the humbled neck + But first begs pardon: will you sterner be + Than he that dies and lives by bloody drops? + + [Enter ROSALIND, CELIA, and CORIN, behind] + +PHEBE I would not be thy executioner: + I fly thee, for I would not injure thee. + Thou tell'st me there is murder in mine eye: + 'Tis pretty, sure, and very probable, + That eyes, that are the frail'st and softest things, + Who shut their coward gates on atomies, + Should be call'd tyrants, butchers, murderers! + Now I do frown on thee with all my heart; + And if mine eyes can wound, now let them kill thee: + Now counterfeit to swoon; why now fall down; + Or if thou canst not, O, for shame, for shame, + Lie not, to say mine eyes are murderers! + Now show the wound mine eye hath made in thee: + Scratch thee but with a pin, and there remains + Some scar of it; lean but upon a rush, + The cicatrice and capable impressure + Thy palm some moment keeps; but now mine eyes, + Which I have darted at thee, hurt thee not, + Nor, I am sure, there is no force in eyes + That can do hurt. + +SILVIUS O dear Phebe, + If ever,--as that ever may be near,-- + You meet in some fresh cheek the power of fancy, + Then shall you know the wounds invisible + That love's keen arrows make. + +PHEBE But till that time + Come not thou near me: and when that time comes, + Afflict me with thy mocks, pity me not; + As till that time I shall not pity thee. + +ROSALIND And why, I pray you? Who might be your mother, + That you insult, exult, and all at once, + Over the wretched? What though you have no beauty,-- + As, by my faith, I see no more in you + Than without candle may go dark to bed-- + Must you be therefore proud and pitiless? + Why, what means this? Why do you look on me? + I see no more in you than in the ordinary + Of nature's sale-work. 'Od's my little life, + I think she means to tangle my eyes too! + No, faith, proud mistress, hope not after it: + 'Tis not your inky brows, your black silk hair, + Your bugle eyeballs, nor your cheek of cream, + That can entame my spirits to your worship. + You foolish shepherd, wherefore do you follow her, + Like foggy south puffing with wind and rain? + You are a thousand times a properer man + Than she a woman: 'tis such fools as you + That makes the world full of ill-favour'd children: + 'Tis not her glass, but you, that flatters her; + And out of you she sees herself more proper + Than any of her lineaments can show her. + But, mistress, know yourself: down on your knees, + And thank heaven, fasting, for a good man's love: + For I must tell you friendly in your ear, + Sell when you can: you are not for all markets: + Cry the man mercy; love him; take his offer: + Foul is most foul, being foul to be a scoffer. + So take her to thee, shepherd: fare you well. + +PHEBE Sweet youth, I pray you, chide a year together: + I had rather hear you chide than this man woo. + +ROSALIND He's fallen in love with your foulness and she'll + fall in love with my anger. If it be so, as fast as + she answers thee with frowning looks, I'll sauce her + with bitter words. Why look you so upon me? + +PHEBE For no ill will I bear you. + +ROSALIND I pray you, do not fall in love with me, + For I am falser than vows made in wine: + Besides, I like you not. If you will know my house, + 'Tis at the tuft of olives here hard by. + Will you go, sister? Shepherd, ply her hard. + Come, sister. Shepherdess, look on him better, + And be not proud: though all the world could see, + None could be so abused in sight as he. + Come, to our flock. + + [Exeunt ROSALIND, CELIA and CORIN] + +PHEBE Dead Shepherd, now I find thy saw of might, + 'Who ever loved that loved not at first sight?' + +SILVIUS Sweet Phebe,-- + +PHEBE Ha, what say'st thou, Silvius? + +SILVIUS Sweet Phebe, pity me. + +PHEBE Why, I am sorry for thee, gentle Silvius. + +SILVIUS Wherever sorrow is, relief would be: + If you do sorrow at my grief in love, + By giving love your sorrow and my grief + Were both extermined. + +PHEBE Thou hast my love: is not that neighbourly? + +SILVIUS I would have you. + +PHEBE Why, that were covetousness. + Silvius, the time was that I hated thee, + And yet it is not that I bear thee love; + But since that thou canst talk of love so well, + Thy company, which erst was irksome to me, + I will endure, and I'll employ thee too: + But do not look for further recompense + Than thine own gladness that thou art employ'd. + +SILVIUS So holy and so perfect is my love, + And I in such a poverty of grace, + That I shall think it a most plenteous crop + To glean the broken ears after the man + That the main harvest reaps: loose now and then + A scatter'd smile, and that I'll live upon. + +PHEBE Know'st now the youth that spoke to me erewhile? + +SILVIUS Not very well, but I have met him oft; + And he hath bought the cottage and the bounds + That the old carlot once was master of. + +PHEBE Think not I love him, though I ask for him: + 'Tis but a peevish boy; yet he talks well; + But what care I for words? yet words do well + When he that speaks them pleases those that hear. + It is a pretty youth: not very pretty: + But, sure, he's proud, and yet his pride becomes him: + He'll make a proper man: the best thing in him + Is his complexion; and faster than his tongue + Did make offence his eye did heal it up. + He is not very tall; yet for his years he's tall: + His leg is but so so; and yet 'tis well: + There was a pretty redness in his lip, + A little riper and more lusty red + Than that mix'd in his cheek; 'twas just the difference + Between the constant red and mingled damask. + There be some women, Silvius, had they mark'd him + In parcels as I did, would have gone near + To fall in love with him; but, for my part, + I love him not nor hate him not; and yet + I have more cause to hate him than to love him: + For what had he to do to chide at me? + He said mine eyes were black and my hair black: + And, now I am remember'd, scorn'd at me: + I marvel why I answer'd not again: + But that's all one; omittance is no quittance. + I'll write to him a very taunting letter, + And thou shalt bear it: wilt thou, Silvius? + +SILVIUS Phebe, with all my heart. + +PHEBE I'll write it straight; + The matter's in my head and in my heart: + I will be bitter with him and passing short. + Go with me, Silvius. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT IV + + + +SCENE I The forest. + + + [Enter ROSALIND, CELIA, and JAQUES] + +JAQUES I prithee, pretty youth, let me be better acquainted + with thee. + +ROSALIND They say you are a melancholy fellow. + +JAQUES I am so; I do love it better than laughing. + +ROSALIND Those that are in extremity of either are abominable + fellows and betray themselves to every modern + censure worse than drunkards. + +JAQUES Why, 'tis good to be sad and say nothing. + +ROSALIND Why then, 'tis good to be a post. + +JAQUES I have neither the scholar's melancholy, which is + emulation, nor the musician's, which is fantastical, + nor the courtier's, which is proud, nor the + soldier's, which is ambitious, nor the lawyer's, + which is politic, nor the lady's, which is nice, nor + the lover's, which is all these: but it is a + melancholy of mine own, compounded of many simples, + extracted from many objects, and indeed the sundry's + contemplation of my travels, in which my often + rumination wraps me m a most humorous sadness. + +ROSALIND A traveller! By my faith, you have great reason to + be sad: I fear you have sold your own lands to see + other men's; then, to have seen much and to have + nothing, is to have rich eyes and poor hands. + +JAQUES Yes, I have gained my experience. + +ROSALIND And your experience makes you sad: I had rather have + a fool to make me merry than experience to make me + sad; and to travel for it too! + + [Enter ORLANDO] + +ORLANDO Good day and happiness, dear Rosalind! + +JAQUES Nay, then, God be wi' you, an you talk in blank verse. + + [Exit] + +ROSALIND Farewell, Monsieur Traveller: look you lisp and + wear strange suits, disable all the benefits of your + own country, be out of love with your nativity and + almost chide God for making you that countenance you + are, or I will scarce think you have swam in a + gondola. Why, how now, Orlando! where have you been + all this while? You a lover! An you serve me such + another trick, never come in my sight more. + +ORLANDO My fair Rosalind, I come within an hour of my promise. + +ROSALIND Break an hour's promise in love! He that will + divide a minute into a thousand parts and break but + a part of the thousandth part of a minute in the + affairs of love, it may be said of him that Cupid + hath clapped him o' the shoulder, but I'll warrant + him heart-whole. + +ORLANDO Pardon me, dear Rosalind. + +ROSALIND Nay, an you be so tardy, come no more in my sight: I + had as lief be wooed of a snail. + +ORLANDO Of a snail? + +ROSALIND Ay, of a snail; for though he comes slowly, he + carries his house on his head; a better jointure, + I think, than you make a woman: besides he brings + his destiny with him. + +ORLANDO What's that? + +ROSALIND Why, horns, which such as you are fain to be + beholding to your wives for: but he comes armed in + his fortune and prevents the slander of his wife. + +ORLANDO Virtue is no horn-maker; and my Rosalind is virtuous. + +ROSALIND And I am your Rosalind. + +CELIA It pleases him to call you so; but he hath a + Rosalind of a better leer than you. + +ROSALIND Come, woo me, woo me, for now I am in a holiday + humour and like enough to consent. What would you + say to me now, an I were your very very Rosalind? + +ORLANDO I would kiss before I spoke. + +ROSALIND Nay, you were better speak first, and when you were + gravelled for lack of matter, you might take + occasion to kiss. Very good orators, when they are + out, they will spit; and for lovers lacking--God + warn us!--matter, the cleanliest shift is to kiss. + +ORLANDO How if the kiss be denied? + +ROSALIND Then she puts you to entreaty, and there begins new matter. + +ORLANDO Who could be out, being before his beloved mistress? + +ROSALIND Marry, that should you, if I were your mistress, or + I should think my honesty ranker than my wit. + +ORLANDO What, of my suit? + +ROSALIND Not out of your apparel, and yet out of your suit. + Am not I your Rosalind? + +ORLANDO I take some joy to say you are, because I would be + talking of her. + +ROSALIND Well in her person I say I will not have you. + +ORLANDO Then in mine own person I die. + +ROSALIND No, faith, die by attorney. The poor world is + almost six thousand years old, and in all this time + there was not any man died in his own person, + videlicit, in a love-cause. Troilus had his brains + dashed out with a Grecian club; yet he did what he + could to die before, and he is one of the patterns + of love. Leander, he would have lived many a fair + year, though Hero had turned nun, if it had not been + for a hot midsummer night; for, good youth, he went + but forth to wash him in the Hellespont and being + taken with the cramp was drowned and the foolish + coroners of that age found it was 'Hero of Sestos.' + But these are all lies: men have died from time to + time and worms have eaten them, but not for love. + +ORLANDO I would not have my right Rosalind of this mind, + for, I protest, her frown might kill me. + +ROSALIND By this hand, it will not kill a fly. But come, now + I will be your Rosalind in a more coming-on + disposition, and ask me what you will. I will grant + it. + +ORLANDO Then love me, Rosalind. + +ROSALIND Yes, faith, will I, Fridays and Saturdays and all. + +ORLANDO And wilt thou have me? + +ROSALIND Ay, and twenty such. + +ORLANDO What sayest thou? + +ROSALIND Are you not good? + +ORLANDO I hope so. + +ROSALIND Why then, can one desire too much of a good thing? + Come, sister, you shall be the priest and marry us. + Give me your hand, Orlando. What do you say, sister? + +ORLANDO Pray thee, marry us. + +CELIA I cannot say the words. + +ROSALIND You must begin, 'Will you, Orlando--' + +CELIA Go to. Will you, Orlando, have to wife this Rosalind? + +ORLANDO I will. + +ROSALIND Ay, but when? + +ORLANDO Why now; as fast as she can marry us. + +ROSALIND Then you must say 'I take thee, Rosalind, for wife.' + +ORLANDO I take thee, Rosalind, for wife. + +ROSALIND I might ask you for your commission; but I do take + thee, Orlando, for my husband: there's a girl goes + before the priest; and certainly a woman's thought + runs before her actions. + +ORLANDO So do all thoughts; they are winged. + +ROSALIND Now tell me how long you would have her after you + have possessed her. + +ORLANDO For ever and a day. + +ROSALIND Say 'a day,' without the 'ever.' No, no, Orlando; + men are April when they woo, December when they wed: + maids are May when they are maids, but the sky + changes when they are wives. I will be more jealous + of thee than a Barbary cock-pigeon over his hen, + more clamorous than a parrot against rain, more + new-fangled than an ape, more giddy in my desires + than a monkey: I will weep for nothing, like Diana + in the fountain, and I will do that when you are + disposed to be merry; I will laugh like a hyen, and + that when thou art inclined to sleep. + +ORLANDO But will my Rosalind do so? + +ROSALIND By my life, she will do as I do. + +ORLANDO O, but she is wise. + +ROSALIND Or else she could not have the wit to do this: the + wiser, the waywarder: make the doors upon a woman's + wit and it will out at the casement; shut that and + 'twill out at the key-hole; stop that, 'twill fly + with the smoke out at the chimney. + +ORLANDO A man that had a wife with such a wit, he might say + 'Wit, whither wilt?' + +ROSALIND Nay, you might keep that cheque for it till you met + your wife's wit going to your neighbour's bed. + +ORLANDO And what wit could wit have to excuse that? + +ROSALIND Marry, to say she came to seek you there. You shall + never take her without her answer, unless you take + her without her tongue. O, that woman that cannot + make her fault her husband's occasion, let her + never nurse her child herself, for she will breed + it like a fool! + +ORLANDO For these two hours, Rosalind, I will leave thee. + +ROSALIND Alas! dear love, I cannot lack thee two hours. + +ORLANDO I must attend the duke at dinner: by two o'clock I + will be with thee again. + +ROSALIND Ay, go your ways, go your ways; I knew what you + would prove: my friends told me as much, and I + thought no less: that flattering tongue of yours + won me: 'tis but one cast away, and so, come, + death! Two o'clock is your hour? + +ORLANDO Ay, sweet Rosalind. + +ROSALIND By my troth, and in good earnest, and so God mend + me, and by all pretty oaths that are not dangerous, + if you break one jot of your promise or come one + minute behind your hour, I will think you the most + pathetical break-promise and the most hollow lover + and the most unworthy of her you call Rosalind that + may be chosen out of the gross band of the + unfaithful: therefore beware my censure and keep + your promise. + +ORLANDO With no less religion than if thou wert indeed my + Rosalind: so adieu. + +ROSALIND Well, Time is the old justice that examines all such + offenders, and let Time try: adieu. + + [Exit ORLANDO] + +CELIA You have simply misused our sex in your love-prate: + we must have your doublet and hose plucked over your + head, and show the world what the bird hath done to + her own nest. + +ROSALIND O coz, coz, coz, my pretty little coz, that thou + didst know how many fathom deep I am in love! But + it cannot be sounded: my affection hath an unknown + bottom, like the bay of Portugal. + +CELIA Or rather, bottomless, that as fast as you pour + affection in, it runs out. + +ROSALIND No, that same wicked bastard of Venus that was begot + of thought, conceived of spleen and born of madness, + that blind rascally boy that abuses every one's eyes + because his own are out, let him be judge how deep I + am in love. I'll tell thee, Aliena, I cannot be out + of the sight of Orlando: I'll go find a shadow and + sigh till he come. + +CELIA And I'll sleep. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT IV + + + +SCENE II The forest. + + + [Enter JAQUES, Lords, and Foresters] + +JAQUES Which is he that killed the deer? + +A Lord Sir, it was I. + +JAQUES Let's present him to the duke, like a Roman + conqueror; and it would do well to set the deer's + horns upon his head, for a branch of victory. Have + you no song, forester, for this purpose? + +Forester Yes, sir. + +JAQUES Sing it: 'tis no matter how it be in tune, so it + make noise enough. + + SONG. +Forester What shall he have that kill'd the deer? + His leather skin and horns to wear. + Then sing him home; + + [The rest shall bear this burden] + + Take thou no scorn to wear the horn; + It was a crest ere thou wast born: + Thy father's father wore it, + And thy father bore it: + The horn, the horn, the lusty horn + Is not a thing to laugh to scorn. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT IV + + + +SCENE III The forest. + + + [Enter ROSALIND and CELIA] + +ROSALIND How say you now? Is it not past two o'clock? and + here much Orlando! + +CELIA I warrant you, with pure love and troubled brain, he + hath ta'en his bow and arrows and is gone forth to + sleep. Look, who comes here. + + [Enter SILVIUS] + +SILVIUS My errand is to you, fair youth; + My gentle Phebe bid me give you this: + I know not the contents; but, as I guess + By the stern brow and waspish action + Which she did use as she was writing of it, + It bears an angry tenor: pardon me: + I am but as a guiltless messenger. + +ROSALIND Patience herself would startle at this letter + And play the swaggerer; bear this, bear all: + She says I am not fair, that I lack manners; + She calls me proud, and that she could not love me, + Were man as rare as phoenix. 'Od's my will! + Her love is not the hare that I do hunt: + Why writes she so to me? Well, shepherd, well, + This is a letter of your own device. + +SILVIUS No, I protest, I know not the contents: + Phebe did write it. + +ROSALIND Come, come, you are a fool + And turn'd into the extremity of love. + I saw her hand: she has a leathern hand. + A freestone-colour'd hand; I verily did think + That her old gloves were on, but 'twas her hands: + She has a huswife's hand; but that's no matter: + I say she never did invent this letter; + This is a man's invention and his hand. + +SILVIUS Sure, it is hers. + +ROSALIND Why, 'tis a boisterous and a cruel style. + A style for-challengers; why, she defies me, + Like Turk to Christian: women's gentle brain + Could not drop forth such giant-rude invention + Such Ethiope words, blacker in their effect + Than in their countenance. Will you hear the letter? + +SILVIUS So please you, for I never heard it yet; + Yet heard too much of Phebe's cruelty. + +ROSALIND She Phebes me: mark how the tyrant writes. + + [Reads] + + Art thou god to shepherd turn'd, + That a maiden's heart hath burn'd? + Can a woman rail thus? + +SILVIUS Call you this railing? + +ROSALIND [Reads] + + Why, thy godhead laid apart, + Warr'st thou with a woman's heart? + Did you ever hear such railing? + Whiles the eye of man did woo me, + That could do no vengeance to me. + Meaning me a beast. + If the scorn of your bright eyne + Have power to raise such love in mine, + Alack, in me what strange effect + Would they work in mild aspect! + Whiles you chid me, I did love; + How then might your prayers move! + He that brings this love to thee + Little knows this love in me: + And by him seal up thy mind; + Whether that thy youth and kind + Will the faithful offer take + Of me and all that I can make; + Or else by him my love deny, + And then I'll study how to die. + +SILVIUS Call you this chiding? + +CELIA Alas, poor shepherd! + +ROSALIND Do you pity him? no, he deserves no pity. Wilt + thou love such a woman? What, to make thee an + instrument and play false strains upon thee! not to + be endured! Well, go your way to her, for I see + love hath made thee a tame snake, and say this to + her: that if she love me, I charge her to love + thee; if she will not, I will never have her unless + thou entreat for her. If you be a true lover, + hence, and not a word; for here comes more company. + + [Exit SILVIUS] + + [Enter OLIVER] + +OLIVER Good morrow, fair ones: pray you, if you know, + Where in the purlieus of this forest stands + A sheep-cote fenced about with olive trees? + +CELIA West of this place, down in the neighbour bottom: + The rank of osiers by the murmuring stream + Left on your right hand brings you to the place. + But at this hour the house doth keep itself; + There's none within. + +OLIVER If that an eye may profit by a tongue, + Then should I know you by description; + Such garments and such years: 'The boy is fair, + Of female favour, and bestows himself + Like a ripe sister: the woman low + And browner than her brother.' Are not you + The owner of the house I did inquire for? + +CELIA It is no boast, being ask'd, to say we are. + +OLIVER Orlando doth commend him to you both, + And to that youth he calls his Rosalind + He sends this bloody napkin. Are you he? + +ROSALIND I am: what must we understand by this? + +OLIVER Some of my shame; if you will know of me + What man I am, and how, and why, and where + This handkercher was stain'd. + +CELIA I pray you, tell it. + +OLIVER When last the young Orlando parted from you + He left a promise to return again + Within an hour, and pacing through the forest, + Chewing the food of sweet and bitter fancy, + Lo, what befell! he threw his eye aside, + And mark what object did present itself: + Under an oak, whose boughs were moss'd with age + And high top bald with dry antiquity, + A wretched ragged man, o'ergrown with hair, + Lay sleeping on his back: about his neck + A green and gilded snake had wreathed itself, + Who with her head nimble in threats approach'd + The opening of his mouth; but suddenly, + Seeing Orlando, it unlink'd itself, + And with indented glides did slip away + Into a bush: under which bush's shade + A lioness, with udders all drawn dry, + Lay couching, head on ground, with catlike watch, + When that the sleeping man should stir; for 'tis + The royal disposition of that beast + To prey on nothing that doth seem as dead: + This seen, Orlando did approach the man + And found it was his brother, his elder brother. + +CELIA O, I have heard him speak of that same brother; + And he did render him the most unnatural + That lived amongst men. + +OLIVER And well he might so do, + For well I know he was unnatural. + +ROSALIND But, to Orlando: did he leave him there, + Food to the suck'd and hungry lioness? + +OLIVER Twice did he turn his back and purposed so; + But kindness, nobler ever than revenge, + And nature, stronger than his just occasion, + Made him give battle to the lioness, + Who quickly fell before him: in which hurtling + From miserable slumber I awaked. + +CELIA Are you his brother? + +ROSALIND Wast you he rescued? + +CELIA Was't you that did so oft contrive to kill him? + +OLIVER 'Twas I; but 'tis not I I do not shame + To tell you what I was, since my conversion + So sweetly tastes, being the thing I am. + +ROSALIND But, for the bloody napkin? + +OLIVER By and by. + When from the first to last betwixt us two + Tears our recountments had most kindly bathed, + As how I came into that desert place:-- + In brief, he led me to the gentle duke, + Who gave me fresh array and entertainment, + Committing me unto my brother's love; + Who led me instantly unto his cave, + There stripp'd himself, and here upon his arm + The lioness had torn some flesh away, + Which all this while had bled; and now he fainted + And cried, in fainting, upon Rosalind. + Brief, I recover'd him, bound up his wound; + And, after some small space, being strong at heart, + He sent me hither, stranger as I am, + To tell this story, that you might excuse + His broken promise, and to give this napkin + Dyed in his blood unto the shepherd youth + That he in sport doth call his Rosalind. + + [ROSALIND swoons] + +CELIA Why, how now, Ganymede! sweet Ganymede! + +OLIVER Many will swoon when they do look on blood. + +CELIA There is more in it. Cousin Ganymede! + +OLIVER Look, he recovers. + +ROSALIND I would I were at home. + +CELIA We'll lead you thither. + I pray you, will you take him by the arm? + +OLIVER Be of good cheer, youth: you a man! you lack a + man's heart. + +ROSALIND I do so, I confess it. Ah, sirrah, a body would + think this was well counterfeited! I pray you, tell + your brother how well I counterfeited. Heigh-ho! + +OLIVER This was not counterfeit: there is too great + testimony in your complexion that it was a passion + of earnest. + +ROSALIND Counterfeit, I assure you. + +OLIVER Well then, take a good heart and counterfeit to be a man. + +ROSALIND So I do: but, i' faith, I should have been a woman by right. + +CELIA Come, you look paler and paler: pray you, draw + homewards. Good sir, go with us. + +OLIVER That will I, for I must bear answer back + How you excuse my brother, Rosalind. + +ROSALIND I shall devise something: but, I pray you, commend + my counterfeiting to him. Will you go? + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT V + + + +SCENE I The forest. + + + [Enter TOUCHSTONE and AUDREY] + +TOUCHSTONE We shall find a time, Audrey; patience, gentle Audrey. + +AUDREY Faith, the priest was good enough, for all the old + gentleman's saying. + +TOUCHSTONE A most wicked Sir Oliver, Audrey, a most vile + Martext. But, Audrey, there is a youth here in the + forest lays claim to you. + +AUDREY Ay, I know who 'tis; he hath no interest in me in + the world: here comes the man you mean. + +TOUCHSTONE It is meat and drink to me to see a clown: by my + troth, we that have good wits have much to answer + for; we shall be flouting; we cannot hold. + + [Enter WILLIAM] + +WILLIAM Good even, Audrey. + +AUDREY God ye good even, William. + +WILLIAM And good even to you, sir. + +TOUCHSTONE Good even, gentle friend. Cover thy head, cover thy + head; nay, prithee, be covered. How old are you, friend? + +WILLIAM Five and twenty, sir. + +TOUCHSTONE A ripe age. Is thy name William? + +WILLIAM William, sir. + +TOUCHSTONE A fair name. Wast born i' the forest here? + +WILLIAM Ay, sir, I thank God. + +TOUCHSTONE 'Thank God;' a good answer. Art rich? + +WILLIAM Faith, sir, so so. + +TOUCHSTONE 'So so' is good, very good, very excellent good; and + yet it is not; it is but so so. Art thou wise? + +WILLIAM Ay, sir, I have a pretty wit. + +TOUCHSTONE Why, thou sayest well. I do now remember a saying, + 'The fool doth think he is wise, but the wise man + knows himself to be a fool.' The heathen + philosopher, when he had a desire to eat a grape, + would open his lips when he put it into his mouth; + meaning thereby that grapes were made to eat and + lips to open. You do love this maid? + +WILLIAM I do, sir. + +TOUCHSTONE Give me your hand. Art thou learned? + +WILLIAM No, sir. + +TOUCHSTONE Then learn this of me: to have, is to have; for it + is a figure in rhetoric that drink, being poured out + of a cup into a glass, by filling the one doth empty + the other; for all your writers do consent that ipse + is he: now, you are not ipse, for I am he. + +WILLIAM Which he, sir? + +TOUCHSTONE He, sir, that must marry this woman. Therefore, you + clown, abandon,--which is in the vulgar leave,--the + society,--which in the boorish is company,--of this + female,--which in the common is woman; which + together is, abandon the society of this female, or, + clown, thou perishest; or, to thy better + understanding, diest; or, to wit I kill thee, make + thee away, translate thy life into death, thy + liberty into bondage: I will deal in poison with + thee, or in bastinado, or in steel; I will bandy + with thee in faction; I will o'errun thee with + policy; I will kill thee a hundred and fifty ways: + therefore tremble and depart. + +AUDREY Do, good William. + +WILLIAM God rest you merry, sir. + + [Exit] + + [Enter CORIN] + +CORIN Our master and mistress seeks you; come, away, away! + +TOUCHSTONE Trip, Audrey! trip, Audrey! I attend, I attend. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT V + + + +SCENE II The forest. + + + [Enter ORLANDO and OLIVER] + +ORLANDO Is't possible that on so little acquaintance you + should like her? that but seeing you should love + her? and loving woo? and, wooing, she should + grant? and will you persever to enjoy her? + +OLIVER Neither call the giddiness of it in question, the + poverty of her, the small acquaintance, my sudden + wooing, nor her sudden consenting; but say with me, + I love Aliena; say with her that she loves me; + consent with both that we may enjoy each other: it + shall be to your good; for my father's house and all + the revenue that was old Sir Rowland's will I + estate upon you, and here live and die a shepherd. + +ORLANDO You have my consent. Let your wedding be to-morrow: + thither will I invite the duke and all's contented + followers. Go you and prepare Aliena; for look + you, here comes my Rosalind. + + [Enter ROSALIND] + +ROSALIND God save you, brother. + +OLIVER And you, fair sister. + + [Exit] + +ROSALIND O, my dear Orlando, how it grieves me to see thee + wear thy heart in a scarf! + +ORLANDO It is my arm. + +ROSALIND I thought thy heart had been wounded with the claws + of a lion. + +ORLANDO Wounded it is, but with the eyes of a lady. + +ROSALIND Did your brother tell you how I counterfeited to + swoon when he showed me your handkerchief? + +ORLANDO Ay, and greater wonders than that. + +ROSALIND O, I know where you are: nay, 'tis true: there was + never any thing so sudden but the fight of two rams + and Caesar's thrasonical brag of 'I came, saw, and + overcame:' for your brother and my sister no sooner + met but they looked, no sooner looked but they + loved, no sooner loved but they sighed, no sooner + sighed but they asked one another the reason, no + sooner knew the reason but they sought the remedy; + and in these degrees have they made a pair of stairs + to marriage which they will climb incontinent, or + else be incontinent before marriage: they are in + the very wrath of love and they will together; clubs + cannot part them. + +ORLANDO They shall be married to-morrow, and I will bid the + duke to the nuptial. But, O, how bitter a thing it + is to look into happiness through another man's + eyes! By so much the more shall I to-morrow be at + the height of heart-heaviness, by how much I shall + think my brother happy in having what he wishes for. + +ROSALIND Why then, to-morrow I cannot serve your turn for Rosalind? + +ORLANDO I can live no longer by thinking. + +ROSALIND I will weary you then no longer with idle talking. + Know of me then, for now I speak to some purpose, + that I know you are a gentleman of good conceit: I + speak not this that you should bear a good opinion + of my knowledge, insomuch I say I know you are; + neither do I labour for a greater esteem than may in + some little measure draw a belief from you, to do + yourself good and not to grace me. Believe then, if + you please, that I can do strange things: I have, + since I was three year old, conversed with a + magician, most profound in his art and yet not + damnable. If you do love Rosalind so near the heart + as your gesture cries it out, when your brother + marries Aliena, shall you marry her: I know into + what straits of fortune she is driven; and it is + not impossible to me, if it appear not inconvenient + to you, to set her before your eyes tomorrow human + as she is and without any danger. + +ORLANDO Speakest thou in sober meanings? + +ROSALIND By my life, I do; which I tender dearly, though I + say I am a magician. Therefore, put you in your + best array: bid your friends; for if you will be + married to-morrow, you shall, and to Rosalind, if you will. + + [Enter SILVIUS and PHEBE] + + Look, here comes a lover of mine and a lover of hers. + +PHEBE Youth, you have done me much ungentleness, + To show the letter that I writ to you. + +ROSALIND I care not if I have: it is my study + To seem despiteful and ungentle to you: + You are there followed by a faithful shepherd; + Look upon him, love him; he worships you. + +PHEBE Good shepherd, tell this youth what 'tis to love. + +SILVIUS It is to be all made of sighs and tears; + And so am I for Phebe. + +PHEBE And I for Ganymede. + +ORLANDO And I for Rosalind. + +ROSALIND And I for no woman. + +SILVIUS It is to be all made of faith and service; + And so am I for Phebe. + +PHEBE And I for Ganymede. + +ORLANDO And I for Rosalind. + +ROSALIND And I for no woman. + +SILVIUS It is to be all made of fantasy, + All made of passion and all made of wishes, + All adoration, duty, and observance, + All humbleness, all patience and impatience, + All purity, all trial, all observance; + And so am I for Phebe. + +PHEBE And so am I for Ganymede. + +ORLANDO And so am I for Rosalind. + +ROSALIND And so am I for no woman. + +PHEBE If this be so, why blame you me to love you? + +SILVIUS If this be so, why blame you me to love you? + +ORLANDO If this be so, why blame you me to love you? + +ROSALIND Who do you speak to, 'Why blame you me to love you?' + +ORLANDO To her that is not here, nor doth not hear. + +ROSALIND Pray you, no more of this; 'tis like the howling + of Irish wolves against the moon. + + [To SILVIUS] + + I will help you, if I can: + + [To PHEBE] + + I would love you, if I could. To-morrow meet me all together. + + [To PHEBE] + + I will marry you, if ever I marry woman, and I'll be + married to-morrow: + + [To ORLANDO] + + I will satisfy you, if ever I satisfied man, and you + shall be married to-morrow: + + [To SILVIUS] + + I will content you, if what pleases you contents + you, and you shall be married to-morrow. + + [To ORLANDO] + + As you love Rosalind, meet: + + [To SILVIUS] + + as you love Phebe, meet: and as I love no woman, + I'll meet. So fare you well: I have left you commands. + +SILVIUS I'll not fail, if I live. + +PHEBE Nor I. + +ORLANDO Nor I. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT V + + + +SCENE III The forest. + + + [Enter TOUCHSTONE and AUDREY] + +TOUCHSTONE To-morrow is the joyful day, Audrey; to-morrow will + we be married. + +AUDREY I do desire it with all my heart; and I hope it is + no dishonest desire to desire to be a woman of the + world. Here comes two of the banished duke's pages. + + [Enter two Pages] + +First Page Well met, honest gentleman. + +TOUCHSTONE By my troth, well met. Come, sit, sit, and a song. + +Second Page We are for you: sit i' the middle. + +First Page Shall we clap into't roundly, without hawking or + spitting or saying we are hoarse, which are the only + prologues to a bad voice? + +Second Page I'faith, i'faith; and both in a tune, like two + gipsies on a horse. + + SONG. + It was a lover and his lass, + With a hey, and a ho, and a hey nonino, + That o'er the green corn-field did pass + In the spring time, the only pretty ring time, + When birds do sing, hey ding a ding, ding: + Sweet lovers love the spring. + + Between the acres of the rye, + With a hey, and a ho, and a hey nonino + These pretty country folks would lie, + In spring time, &c. + + This carol they began that hour, + With a hey, and a ho, and a hey nonino, + How that a life was but a flower + In spring time, &c. + + And therefore take the present time, + With a hey, and a ho, and a hey nonino; + For love is crowned with the prime + In spring time, &c. + +TOUCHSTONE Truly, young gentlemen, though there was no great + matter in the ditty, yet the note was very + untuneable. + +First Page You are deceived, sir: we kept time, we lost not our time. + +TOUCHSTONE By my troth, yes; I count it but time lost to hear + such a foolish song. God be wi' you; and God mend + your voices! Come, Audrey. + + [Exeunt] + + + + + AS YOU LIKE IT + + +ACT V + + + +SCENE IV The forest. + + + [Enter DUKE SENIOR, AMIENS, JAQUES, ORLANDO, OLIVER, + and CELIA] + +DUKE SENIOR Dost thou believe, Orlando, that the boy + Can do all this that he hath promised? + +ORLANDO I sometimes do believe, and sometimes do not; + As those that fear they hope, and know they fear. + + [Enter ROSALIND, SILVIUS, and PHEBE] + +ROSALIND Patience once more, whiles our compact is urged: + You say, if I bring in your Rosalind, + You will bestow her on Orlando here? + +DUKE SENIOR That would I, had I kingdoms to give with her. + +ROSALIND And you say, you will have her, when I bring her? + +ORLANDO That would I, were I of all kingdoms king. + +ROSALIND You say, you'll marry me, if I be willing? + +PHEBE That will I, should I die the hour after. + +ROSALIND But if you do refuse to marry me, + You'll give yourself to this most faithful shepherd? + +PHEBE So is the bargain. + +ROSALIND You say, that you'll have Phebe, if she will? + +SILVIUS Though to have her and death were both one thing. + +ROSALIND I have promised to make all this matter even. + Keep you your word, O duke, to give your daughter; + You yours, Orlando, to receive his daughter: + Keep your word, Phebe, that you'll marry me, + Or else refusing me, to wed this shepherd: + Keep your word, Silvius, that you'll marry her. + If she refuse me: and from hence I go, + To make these doubts all even. + + [Exeunt ROSALIND and CELIA] + +DUKE SENIOR I do remember in this shepherd boy + Some lively touches of my daughter's favour. + +ORLANDO My lord, the first time that I ever saw him + Methought he was a brother to your daughter: + But, my good lord, this boy is forest-born, + And hath been tutor'd in the rudiments + Of many desperate studies by his uncle, + Whom he reports to be a great magician, + Obscured in the circle of this forest. + + [Enter TOUCHSTONE and AUDREY] + +JAQUES There is, sure, another flood toward, and these + couples are coming to the ark. Here comes a pair of + very strange beasts, which in all tongues are called fools. + +TOUCHSTONE Salutation and greeting to you all! + +JAQUES Good my lord, bid him welcome: this is the + motley-minded gentleman that I have so often met in + the forest: he hath been a courtier, he swears. + +TOUCHSTONE If any man doubt that, let him put me to my + purgation. I have trod a measure; I have flattered + a lady; I have been politic with my friend, smooth + with mine enemy; I have undone three tailors; I have + had four quarrels, and like to have fought one. + +JAQUES And how was that ta'en up? + +TOUCHSTONE Faith, we met, and found the quarrel was upon the + seventh cause. + +JAQUES How seventh cause? Good my lord, like this fellow. + +DUKE SENIOR I like him very well. + +TOUCHSTONE God 'ild you, sir; I desire you of the like. I + press in here, sir, amongst the rest of the country + copulatives, to swear and to forswear: according as + marriage binds and blood breaks: a poor virgin, + sir, an ill-favoured thing, sir, but mine own; a poor + humour of mine, sir, to take that that no man else + will: rich honesty dwells like a miser, sir, in a + poor house; as your pearl in your foul oyster. + +DUKE SENIOR By my faith, he is very swift and sententious. + +TOUCHSTONE According to the fool's bolt, sir, and such dulcet diseases. + +JAQUES But, for the seventh cause; how did you find the + quarrel on the seventh cause? + +TOUCHSTONE Upon a lie seven times removed:--bear your body more + seeming, Audrey:--as thus, sir. I did dislike the + cut of a certain courtier's beard: he sent me word, + if I said his beard was not cut well, he was in the + mind it was: this is called the Retort Courteous. + If I sent him word again 'it was not well cut,' he + would send me word, he cut it to please himself: + this is called the Quip Modest. If again 'it was + not well cut,' he disabled my judgment: this is + called the Reply Churlish. If again 'it was not + well cut,' he would answer, I spake not true: this + is called the Reproof Valiant. If again 'it was not + well cut,' he would say I lied: this is called the + Counter-cheque Quarrelsome: and so to the Lie + Circumstantial and the Lie Direct. + +JAQUES And how oft did you say his beard was not well cut? + +TOUCHSTONE I durst go no further than the Lie Circumstantial, + nor he durst not give me the Lie Direct; and so we + measured swords and parted. + +JAQUES Can you nominate in order now the degrees of the lie? + +TOUCHSTONE O sir, we quarrel in print, by the book; as you have + books for good manners: I will name you the degrees. + The first, the Retort Courteous; the second, the + Quip Modest; the third, the Reply Churlish; the + fourth, the Reproof Valiant; the fifth, the + Countercheque Quarrelsome; the sixth, the Lie with + Circumstance; the seventh, the Lie Direct. All + these you may avoid but the Lie Direct; and you may + avoid that too, with an If. I knew when seven + justices could not take up a quarrel, but when the + parties were met themselves, one of them thought but + of an If, as, 'If you said so, then I said so;' and + they shook hands and swore brothers. Your If is the + only peacemaker; much virtue in If. + +JAQUES Is not this a rare fellow, my lord? he's as good at + any thing and yet a fool. + +DUKE SENIOR He uses his folly like a stalking-horse and under + the presentation of that he shoots his wit. + + [Enter HYMEN, ROSALIND, and CELIA] + + [Still Music] + +HYMEN Then is there mirth in heaven, + When earthly things made even + Atone together. + Good duke, receive thy daughter + Hymen from heaven brought her, + Yea, brought her hither, + That thou mightst join her hand with his + Whose heart within his bosom is. + +ROSALIND [To DUKE SENIOR] To you I give myself, for I am yours. + + [To ORLANDO] + + To you I give myself, for I am yours. + +DUKE SENIOR If there be truth in sight, you are my daughter. + +ORLANDO If there be truth in sight, you are my Rosalind. + +PHEBE If sight and shape be true, + Why then, my love adieu! + +ROSALIND I'll have no father, if you be not he: + I'll have no husband, if you be not he: + Nor ne'er wed woman, if you be not she. + +HYMEN Peace, ho! I bar confusion: + 'Tis I must make conclusion + Of these most strange events: + Here's eight that must take hands + To join in Hymen's bands, + If truth holds true contents. + You and you no cross shall part: + You and you are heart in heart + You to his love must accord, + Or have a woman to your lord: + You and you are sure together, + As the winter to foul weather. + Whiles a wedlock-hymn we sing, + Feed yourselves with questioning; + That reason wonder may diminish, + How thus we met, and these things finish. + + SONG. + Wedding is great Juno's crown: + O blessed bond of board and bed! + 'Tis Hymen peoples every town; + High wedlock then be honoured: + Honour, high honour and renown, + To Hymen, god of every town! + +DUKE SENIOR O my dear niece, welcome thou art to me! + Even daughter, welcome, in no less degree. + +PHEBE I will not eat my word, now thou art mine; + Thy faith my fancy to thee doth combine. + + [Enter JAQUES DE BOYS] + +JAQUES DE BOYS Let me have audience for a word or two: + I am the second son of old Sir Rowland, + That bring these tidings to this fair assembly. + Duke Frederick, hearing how that every day + Men of great worth resorted to this forest, + Address'd a mighty power; which were on foot, + In his own conduct, purposely to take + His brother here and put him to the sword: + And to the skirts of this wild wood he came; + Where meeting with an old religious man, + After some question with him, was converted + Both from his enterprise and from the world, + His crown bequeathing to his banish'd brother, + And all their lands restored to them again + That were with him exiled. This to be true, + I do engage my life. + +DUKE SENIOR Welcome, young man; + Thou offer'st fairly to thy brothers' wedding: + To one his lands withheld, and to the other + A land itself at large, a potent dukedom. + First, in this forest, let us do those ends + That here were well begun and well begot: + And after, every of this happy number + That have endured shrewd days and nights with us + Shall share the good of our returned fortune, + According to the measure of their states. + Meantime, forget this new-fall'n dignity + And fall into our rustic revelry. + Play, music! And you, brides and bridegrooms all, + With measure heap'd in joy, to the measures fall. + +JAQUES Sir, by your patience. If I heard you rightly, + The duke hath put on a religious life + And thrown into neglect the pompous court? + +JAQUES DE BOYS He hath. + +JAQUES To him will I : out of these convertites + There is much matter to be heard and learn'd. + + [To DUKE SENIOR] + + You to your former honour I bequeath; + Your patience and your virtue well deserves it: + + [To ORLANDO] + + You to a love that your true faith doth merit: + + [To OLIVER] + + You to your land and love and great allies: + + [To SILVIUS] + + You to a long and well-deserved bed: + + [To TOUCHSTONE] + + And you to wrangling; for thy loving voyage + Is but for two months victuall'd. So, to your pleasures: + I am for other than for dancing measures. + +DUKE SENIOR Stay, Jaques, stay. + +JAQUES To see no pastime I what you would have + I'll stay to know at your abandon'd cave. + + [Exit] + +DUKE SENIOR Proceed, proceed: we will begin these rites, + As we do trust they'll end, in true delights. + + [A dance] + + + + + AS YOU LIKE IT + + EPILOGUE + + +ROSALIND It is not the fashion to see the lady the epilogue; + but it is no more unhandsome than to see the lord + the prologue. If it be true that good wine needs + no bush, 'tis true that a good play needs no + epilogue; yet to good wine they do use good bushes, + and good plays prove the better by the help of good + epilogues. What a case am I in then, that am + neither a good epilogue nor cannot insinuate with + you in the behalf of a good play! I am not + furnished like a beggar, therefore to beg will not + become me: my way is to conjure you; and I'll begin + with the women. I charge you, O women, for the love + you bear to men, to like as much of this play as + please you: and I charge you, O men, for the love + you bear to women--as I perceive by your simpering, + none of you hates them--that between you and the + women the play may please. If I were a woman I + would kiss as many of you as had beards that pleased + me, complexions that liked me and breaths that I + defied not: and, I am sure, as many as have good + beards or good faces or sweet breaths will, for my + kind offer, when I make curtsy, bid me farewell. + + [Exeunt] diff --git a/snappy-1.1.0/testdata/baddata1.snappy b/snappy-1.1.0/testdata/baddata1.snappy Binary files differnew file mode 100644 index 0000000..99d970f --- /dev/null +++ b/snappy-1.1.0/testdata/baddata1.snappy diff --git a/snappy-1.1.0/testdata/baddata2.snappy b/snappy-1.1.0/testdata/baddata2.snappy Binary files differnew file mode 100644 index 0000000..8f5cb13 --- /dev/null +++ b/snappy-1.1.0/testdata/baddata2.snappy diff --git a/snappy-1.1.0/testdata/baddata3.snappy b/snappy-1.1.0/testdata/baddata3.snappy Binary files differnew file mode 100644 index 0000000..774aead --- /dev/null +++ b/snappy-1.1.0/testdata/baddata3.snappy diff --git a/snappy-1.1.0/testdata/cp.html b/snappy-1.1.0/testdata/cp.html new file mode 100644 index 0000000..1d0ca37 --- /dev/null +++ b/snappy-1.1.0/testdata/cp.html @@ -0,0 +1,645 @@ +<head> +<title>Compression Pointers</title> +<META HTTP-EQUIV="Keywords" CONTENT="compression, compression, compression"> +</head> +<body> +<BODY BGCOLOR=#FFFFFF> + +<center> +<H1> Compression Pointers </h1> + + + +</center> + +<p> +<a href="#Resources">Compression resources</a>, <a href="#Conferences">conferences</a>, and some <a href="#Research">research +groups and companies</a>, are listed towards the end of this page. <p> + +Use this <a href="form.html">handy form</a> to add something to this page, or to simply say you liked this page<i> <img src="new.gif"> +<p> + +</i> + + + +<p> + +<h2>What's New?</h2><p> + + +<a href="http://www.teaser.fr/~jlgailly/">Jean-loup Gailly</a> -- <i>Mr. gzip, +PNG, CCR (1996-06-10)</i> +<img src="new.gif"> +<br> + +<a href="http://www.creative.net/~tristan/MPEG">MPEG Pointers and Resources</a> +<img src="new.gif"> +<br> + +<a href="http://www-isl.stanford.edu/~gray/">Robert M. Gray</a> -- <i>Signal +compression, VQ, image quality evaluation (1996-04-22)</i><img src="new.gif"> +<br> + +<a href="http://www-isl.stanford.edu/~gray/compression.html">Compression and +Classification Group</a> -- <i>ISL,EE,Stanford (1996-04-22)</i><img src="new.gif"> +<br> + +<a href="http://www-isl.stanford.edu/~gray/iii.html">Signal Processing +and the International Information Infrastructure</a> -- <i>Web sites (1996-04-22)</i> <img src="new.gif"> +<br> + +<a href="http://www.cs.sc.edu:80/~valenta/">Valenta, Vladimir</a> -- <i>(1996-04-22)</i> +<br> + + +<a href="http://patpwww.epfl.ch:80/~jordan/Subjects/Parallel/parallel.html">Jordan, Frederic</a> -- <i>Parallel Image Compression (1996-04-12)</i> <img src="new.gif"> +<br> +<a href="http://www.garlic.com/biz/eotek">Electro-Optical Technologies, Inc.</a> -- <i>Consultant (1996-04-12)</i> <img src="new.gif"> +<br> +<a href="http://quicktime.apple.com">quicktime.apple.com</a> -- <i>Quicktime site (1996-03-11)</i> <img src="new.gif"> +<br> +<a href="http://www.chips.ibm.com/products/aldc/index.html">IBM Hardware</a> -- <i>Compression chips (1996-03-11)</i> <img src="new.gif"> +<br> + + + + + + + + + + + + + + + + + + + + + + +<!--- + +<img src="new.gif"><i>Do you have, or know of, a research position where an image compression guru with a Ph.D. would feel at +home? Let me know if you do...<a +href="mailto:singlis@cs.waikato.ac.nz"><b>send me some email!</b></a>, or <a +href="http://www.cs.waikato.ac.nz/~singlis/cv.html"><b>check out my +c.v.</b> +</a> +</i> + +--> + +<p> + + +<p> + + +<h2><i>People</i></h2> +<h2>A</h2> + +<a href="http://quest.jpl.nasa.gov/Mark.Adler/">Adler, Mark</a> -- <i>Info-ZIP; Zip, UnZip, gzip and zlib co-author; PNG group</i> +<p> + +<h2>B</h2> + +<a href="http://www.eese.qut.edu.au/~mbaker/">Baker, Matthew</a> -- <i>Region based video compression</i> +<p> +<a href="http://www.eecs.wsu.edu/~bamberg/">Bamberger, Roberto H.</a> +<p> +<a href="http://sutherland.eese.qut.edu.au/~dbell">Bell, Daniel</a> -- <i>Region based image compression</i> +<p> +<a href="http://www.cosc.canterbury.ac.nz/~tim">Bell, Tim</a> -- <i>compression, computer science for children, and computers and music.</i> +<p> +<a href="http://www.polytechnique.fr/poly/~bellard/">Bellard, Fabrice</a> -- <i>Author of LZEXE</I> +<p> +<a href="http://www.cevis.uni-bremen.de/~willy/">Berghorn, Willy </a> +<p> +<a href="http://www.best.com/~bhaskara">Bhaskaran, Vasudev</a> -- <i>Image and Video compression</i> +<p> +<a href="http://wwwvms.utexas.edu/~cbloom/index.html">Bloom, Charles</a> -- <i>text compression, LZ methods, PPM methods...</i> +<p> +<a href="http://www.ime.usp.br/~rbrito">Brito, Roger</a> -- <i>Arithmetic Coding, LZW, Text Compression</i> +<p> +<a href="http://www.engineering.usu.edu/ece/faculty/scottb.html">Budge, Scott E.</a> -- <i>medical/lossy image compression</i> +<p> +<a href="http://www.elec.uow.edu.au/people/staff/burnett/biography.html">Burnett, Ian</a> -- <i>Speech coding, prototype waveform techniques</I> <img src="new.gif"> +<p> + + +<h2>C</h2> + +<a href="http://gabor.eecs.berkeley.edu/~wychan/">Chan, Christopher</a> -- <i>universal lossy source coding, adaptive VQ</i> +<p> +<a href="http://www.compsci.com/~chao">Chao, Hong-yang</a> -- <I>Lightning strike image compressor </i> +<p> +<a href="http://monet.uwaterloo.ca:80/schao/">Chao, Stewart</a> +<p> +<a href="http://diana.ecs.soton.ac.uk/~pjc94r/">Cherriman, Peter</a> +<p> +<a href="http://www-video.eecs.berkeley.edu/erl/sccheung.html">Cheung, S.C.</a> -- <i>Scalable video compression algorithms (18th Feb 1996)</i> <img src="new.gif"> +<p> + +<a href="http://etro.vub.ac.be/chchrist.html">Christopoulos, Charilaos</a> -- <i> Image and Video compression </i> +<p> +<a href="http://sipi.usc.edu/~chrysafi/">Chrysafis, Christos</a> +<p> +<a href="http://www.ee.gatech.edu/research/DSP/students/wchung/index.html">Chung, Wilson C.</a> -- <i>R-D image and video coding, subband/wavelet, filter banks</i> +<p> +<a href="mailto:aclark@hayes.com">Clark, Alan</a> -- <i>primary contact for V.42bis. Developed BTLZ variant of LZW</i> +<p> +<a href="http://www.cs.waikato.ac.nz/cs/Staff/jgc.html">Cleary, John</a> -- <i>PPM, PPM*, K*</i> +<p> +<a href="http://www.cs.brandeis.edu/dept/faculty/cohn/">Cohn, Martin</a> +<p> + +<a href="http://plg.uwaterloo.ca/~gvcormac">Cormack, Gordon V.</a> -- <I>DMC</i> +<p> +<a href="http://www.ee.duke.edu/~cec/index.html">Cramer, Chris</a> -- <i>neural network image compression</i> +<p> + +<h2>D</h2> +<a href="http://www.cs.dartmouth.edu/~jmd/">Danskin, John</a> -- <i>Protocol compression, document compression (9th Feb 1996)</i> +<p> +<a href="http://www.cs.dartmouth.edu/~gdavis">Davis, Geoff</a> -- <i>wavelets, image compression, medical</i> +<p> +<a href="http://www-mddsp.enel.ucalgary.ca/People/adilger/">Dilger, Andreas</a> -- <i>fractal block coding of video sequences</i> +<p> + + +<h2>E</h2> +<a href="http://info.cipic.ucdavis.edu/~estes/index.html">Estes, Robert</a> +<p> + + + +<h2>F</h2> +<a href="http://inls.ucsd.edu/y/Fractals/">Fisher, Yuval</a> -- <i>Fractal Image Compression</i> +<p> +<a href="http://www.wmin.ac.uk/~ajoec1/homepage.html">Ford, Adrian</a> -- <i>Subjective and Objective Compression quality (5th Mar 1996)</i> <img src="new.gif"> +<p> + +<h2>G</h2> +<a href="http://www.teaser.fr/~jlgailly/">Jean-loup Gailly</a> -- +<i>Mr. gzip, PNG, CCR (1996-06-10)</i> +<p> + +<a href="http://www.ece.ucsb.edu/faculty/gersho/default.html">Gersho, Allen</a> -- <i>Vector Quantisation, Image Compression</i> +<p> +<a href="http://life.anu.edu.au/ci/vol1/goertzel.html">Goertzel, Ben</a> +<p> +<a href="http://info.lut.ac.uk/departments/el/research/sys/compression.html">Gooch, Mark</a> -- <i>High Performance Hardware Compression (7th Feb 1996)</i> +<p> +<a href="http://robotics.eecs.berkeley.edu/~vkgoyal/">Goyal, Vivek</a> -- <i>overcomplete representations, adaptive transform coding, VQ</i> +<p> +<a href="http://www-isl.stanford.edu/~gray/">Robert M. Gray</a> -- <i>Signal +compression, VQ, image quality evaluation</i><img src="new.gif"> +<p> + +<h2>H</h2> +<a href="http://cork.informatik.uni-wuerzburg.de/mitarbeiter/ulli">Hafner, Ullrich</a> -- <i>WFA image compression</i> +<p> +<a href="http://www.ics.uci.edu/~dan/">Hirschberg, Dan</a> -- <i>algorithm theory, compression</i> +<p> +<a href="http://wolfpack.larc.nasa.gov/holland.html">Holland, Scott</a> +<p> +<a href="http://www.csc.uvic.ca/home/nigelh/nigelh.html">Horspool, R. Nigel</a> -- <i>text compression, ECG compression</i> + +<h2>I</h2> +<a href="http://www.cs.waikato.ac.nz/~singlis">Inglis, Stuart</a> -- <i>image compression, OCR, lossy/lossless document compression</I> +<p> + +<h2>J</h2> +<a href="http://www.cs.uiowa.edu/~jones/compress/index.html">Jones, Douglas</a> -- <i>splay-tree based compression and encryption</i> +<p> +<a href="http://info.lut.ac.uk/departments/el/research/sys/compression.html">Jones, Simon</a> -- <i>Lossless compression, High Performance Hardware (7th Feb 1996) </i> +<p> +<a href="http://patpwww.epfl.ch:80/~jordan/Subjects/Parallel/parallel.html">Jordan, Frederic</a> -- <i>Parallel Image Compression (12th April 1996)</i> <img src="new.gif"> +<p> +<a href="mailto:robjung@world.std.com">Jung, Robert K.</a> -- <i><a href="http://www.info.fundp.ac.be/~fta/arj.html">ARJ</a> </i> +<p> +<a href="http://www.cs.tu-berlin.de/~jutta/toast.html">jutta</a> +<p> + + + +<h2>K</h2> +<a href="http://links.uwaterloo.ca">Kominek, John</a> -- <I>Fractal and spline based compression</i> +<p> +<a href="http://info.lut.ac.uk/departments/el/research/sys/elmk3.html">Kjelso, Morten</a> -- <i>Main memory compression, High performance hardware</i> +<p> +<a href="http://wwwcip.informatik.uni-erlangen.de/user/mskuhn">Kuhn, Markus</a> -- <i>JBIG implementation</i> <img src="new.gif"> +<p> +<a href="http://sipi.usc.edu/faculty/Kuo.html">Kuo, C.-C. Jay</a> +<p> +<a href="http://kaarna.cc.jyu.fi:80/~kuru/">Kuru, Esa</a> +<p> +<a href="http://www.prz.tu-berlin.de:80/~teo/">Kyfonidis, Theodoros</a> +<p> + +<h2>L</h2> +<a href="http://www.icsi.berkeley.edu/~lampart/">Lamparter, Bernd</a> +<p> +<a href="http://www.cse.ucsc.edu/cgi-bin/faculty?langdon">Langdon, Glen</a> +<p> +<a href="http://www.dna.lth.se/~jesper/">Larsson, Jesper</a> -- <i>algorithms and data structures, text compression</i> <img src="new.gif"> +<p> + + +<h2>M</h2> +<a href="http://glimpse.cs.arizona.edu:1994/udi.html">Manber, Udi</a> +<p> +<a href="http://www.elec.rma.ac.be/~jma/compression.html">Mangen, Jean-Michel</a> -- <i>image compression, wavelets, satellite</I> +<p> +<a href="http://www.cs.mu.oz.au/~alistair">Moffat, Alistair</a> -- <i>text and index compression, coding methods, information retrieval, document databases</i> +<p> +<a href="http://deskfish.cs.titech.ac.jp/squish/squish_index.html">Montgomery, Christopher</a> -- <i>OggSquish, audio compression</i> +<p> +<a href="mailto:umueller@amiga.physik.unizh.ch">Mueller, Urban Dominik</a> -- <i>XPK system</I> +<p> +<h2>N</h2> +<a href="ftp://ai.toronto.edu/pub/radford/www/index.html">Neal, Radford</a> +<p> +<a href="http://www.cs.waikato.ac.nz/~cgn">Nevill-Manning, Craig</a> +<p> +<a href="http://phoenix.bath.ac.uk/jez/jez.html">Nicholls, Jeremy</a> +<p> +<a href="http://www.acti.com/matt/">Noah, Matt</a> -- <i>speech, ATC, ACELP and IMBE</i> +<p> +<a href="http://www.eecs.wsu.edu/~vnuri/">Nuri, Veyis</a> -- <i>wavelets, data compression, DSP (speech & image)</I> + +<h2>O</h2> +<a href="ftp://replicant.csci.unt.edu/pub/oleg/README.html">Oleg</a> -- <i>Lots of code</i> +<p> +<a href="http://sipi.usc.edu/faculty/Ortega/Ortega.html">Ortega, Antonio</a> -- <i>Video compression, Packet video, Adaptive quantization</i> +<p> +<a href="http://www.cs.dartmouth.edu:80/~cowen/">Owen, Charles</a> +<p> + +<h2>P</h2> +<a +href="http://www-mddsp.enel.ucalgary.ca/People/provine/compression.html">Provine, +Joseph</a> -- <i>Model based coding</i> +<p> + +<h2>R</h2> +<a href="http://monet.uwaterloo.ca/~john/btpc.html">Robinson, John</a> -- <i>Binary Tree Predictive Coding</i> +<p> +<a href="http://quest.jpl.nasa.gov/Info-ZIP/people/greg/">Roelofs, Greg</a> -- <i>Info-ZIP; primary UnZip author; PNG group</i> +<p> +<a href="http://www.ece.ucsb.edu/faculty/rose/default.html">Rose, Kenneth</a> +<p> +<a href="http://www.nettuno.it/fiera/telvox/telvox.htm">Russo, Roberto Maria</a> -- <I>Multiplatform Data Compression</i> +<p> + +<h2>S</h2> +<a href="http://harc.edu:80/~schmidt/">Schmidt, Bill</a> +<p> +<a href="http://koa.ifa.hawaii.edu/~shaw/shaw.html">Shaw, Sandy C.</a> +<p> +<a href="http://www.comm.toronto.edu/~kamran/kamran.html">Sharifi, Kamran</a> -- <i>Video over ATM networks</i> +<p> +<a href="http://calypso.unl.edu/~sunil/">Shende, Sunil M.</a> +<p> +<a href="http://viewprint2.berkeley.edu/KleinLab/Amnon/Amnon.html">Silverstein, D. Amnon</a> +<p> +<a href="http://www-plateau.cs.berkeley.edu/people/smoot">Smoot, Steve</a> -- <i>MPEG</i> +<p> +<a href="http://www.cs.brandeis.edu/dept/faculty/storer/">Storer, James A.</a> +<p> +<a href="http://rice.ecs.soton.ac.uk/index.html">Streit, Jurgen</a> -- <i>Low bitrate coding</i> +<p> +<a href="http://www_nt.e-technik.uni-rostock.de/~ts/index.html">Strutz, Tilo</a> -- <i>Wavelet image compressor, demonstration execs</i> <img src="new.gif"> +<p> + + +<h2>T</h2> +<a href="http://zaphod.csci.unt.edu:80/~srt/">Tate, Steve</a> +<p> +<a href="http://www.cs.waikato.ac.nz/~wjt">Teahan, Bill</a> -- <i>PPM, PPM*, master of the Calgary Corpus</i> +<p> +<a href="http://lightning.eee.strath.ac.uk/~duncan/">Thomson, Duncan</a> -- <i>ECG compression with ANNs</i> +<p> +<a href="http://outside.gsfc.nasa.gov/GRSS/">Tilton, James C.</a> +<p> +<a href="http://www.uni-karlsruhe.de/~un55/">Tomczyk, Marek</a> +<p> +<a href="http://munkora.cs.mu.oz.au/~aht">Turpin, Andrew</a> -- <i>Prefix Codes</i> +<p> + +<h2>V</h2> +<a href="http://gabor.eecs.berkeley.edu/~martin/">Vetterli, Martin</a> -- <i>wavelets, subband coding, video compression, computational complexity</i> +<p> +<a href="http://www.cs.duke.edu/~jsv/HomePage.html">Vitter, Jeff</a> +<p> +<a href="http://www.eee.strath.ac.uk/~stathis/home.html">Voukelatos, Stathis</a> +<p> +<a href="http://www.xs4all.nl/~aipnl">de Vries, Nico</a> -- <i>AIP-NL, UltraCompressor II development</i> <img src="new.gif"> +<p> + +<h2>W</h2> + +<a href="http://ipcl.ee.queensu.ca/wareham/wareham.html">Wareham, Paul</a> -- <i>Region-oriented video coding</I> +<p> +<a href="mailto://Wegs59@aol.com">Wegener, Al</a> -- <i>DSP, lossless audio compression and AC-2</i> +<p> +<a href="http://www-dsp.rice.edu:80/~weid/">Wei, Dong</a> -- <i>Wavelet compression</i> +<p> +<a href="http://www.rocksoft.com/~ross">Williams, Ross</a> +<p> +<a href="http://www.cs.waikato.ac.nz/~ihw">Witten, Ian</a> -- <i>PPM, mg, arithmetic coding</i> +<p> +<a href="http://www.sees.bangor.ac.uk/~gerry/sp_summary.html">Wolff, Gerry</a> +<p> +<a href="http://sipi.usc.edu/~wwoo/">Woo, Woon-Tack</a> -- <i>stereo image and video compression (12th Feb 1996)</i> +<p> +<a href="http://www.csd.uwo.ca/faculty/wu/">Wu, Xiaolin</a> -- <i>CALIC</i> +<P> + + +<h2>Z</h2> +<a href="http://www.cs.rmit.edu.au/~jz">Zobel, Justin</a> -- <i>index compression, database compression</i> +<p> + +<br> +<br> + + +<a name="Conferences"> + +<h2><i>Conferences</i></h2> +<a href="http://www.cs.brandeis.edu:80/~dcc/index.html"><b>Data Compression Conference (DCC), Snowbird, Utah, USA.</b></a><br> +<p> + +<a name="Resources"> + +<h2><i>Resources</i></h2> +<dt> +<i><b>Where to get answers...</b></i> +<dd> +<dd><a href="http://info.itu.ch/">International Telecommunication Union (ITU)</a> -- <i>standards documents (CCITT)</i> +<br> +<dd><a href="http://www.cis.ohio-state.edu/hypertext/faq/usenet/compression-faq/top.html">comp.compression -- Frequently Asked Questions</a> -- <i>Come here 1st!</i> +<dd> +<a href="http://www.cis.ohio-state.edu/hypertext/faq/usenet/jpeg-faq/faq.html">JPEG - Frequently Asked Questions</a> +<dd> +<a href="http://www.crs4.it/HTML/LUIGI/MPEG/mpegfaq.html">MPEG - Frequently Asked Questions</a> +<dd> +<a href="ftp://rtfm.mit.edu:/pub/usenet/news.answers/standards-faq">Standards - Frequenty Asked Questions</a> +<dd> +<a href="news:comp.compression.research">usenet newsgroup: comp.compression.research</a> +<br> +<dd> +<a href="http://www.mi.net/act/act.html">Archive Compression Test</a> -- <i>Summary of all archivers</i> +<br> +<dd> +<a href="http://dip1.ee.uct.ac.za/fractal.bib.html">Fractal compression bibliography</a> -- <i>bibtex file</i> +<br> +<dd> +<a href="http://goethe.ira.uka.de/edu/proseminar.html">LZ/Complexity Seminars</a> -- <i>(in German)</i> +<br> +<dd> +<a href="http://www.cs.waikato.ac.nz/~singlis/ratios.html">Comparitive Compression Ratios</a> -- <i>Sofar...B&W, Gray Scale, Text Compression</i> +<br> +<dd> +<a href="http://www.cs.ucl.ac.uk/mice/mpeggloss.html">VCN (Video, Compression, Networking) +Glossary</a> +<br> +<dd> +<a href="http://www.cs.waikato.ac.nz/~nzdl/">Digital Library -- search for compression</a> +<br> +</dt> + +<br> +<dt> +<i><b>Reports/Ph.D. Theses</b></i> +<dd> +<a href="http://www.cs.brown.edu/publications/techreports/reports/CS-93-28.html">Paul Howards Ph.D. thesis</a><br> +<dd><i>The Design and Analysis of Efficient Lossless Data Compression Systems</i> +<br> +</dt> + + + +<br> +<dt> +<i><b>Source code</b></i> +<dd> +<a href="ftp://munnari.oz.au/pub/arith_coder">Arithmetic coding routines</a> +<dd><i>        (from Moffat, Neal and Witten, Proc. DCC, April 1995)</i> +<br> +<dd> +<a href="ftp://ftp.cpsc.ucalgary.ca/pub/projects/ar.cod">CACM Arithmetic coding package</a> +<dd><i>        (Witten, Neal and Cleary, CACM 30:520-541, June 1987)</i> +<br> +<dd> +<a href="ftp://nic.funet.fi/pub/graphics/misc/test-images/jbig.tar.gz">JBIG Source code</a> <i>Includes a Q-coder</i> +<br> +<dd><a href="http://wwwcip.informatik.uni-erlangen.de/user/mskuhn">Markus Kuhn's JBIG implementation</a> +<br> +<dd> +<a href="ftp://media-lab.media.mit.edu/pub/k-arith-code/">k-arithmetic coder</a> +<br> +<dd> +<a href="ftp://garbo.uwasa.fi/pc/programming/lds_11.zip">Lossless Data Compression toolkit 1.1</a> +<br> +<dd> +<a href="http://www.cs.uiowa.edu/~jones/compress/index.html">Splay Trees Code</a> -- <i>by Douglas W. Jones</i> +<br> +<dd><a href="ftp://ftp.cl.cam.ac.uk/users/djw3">Block compression code</a> -- <i>Excellent text compressor</i> +<br> + +</dt> + +<br> +<dt> +<i><b>Test Files</b></i> +<dd> +<a href="ftp://nic.funet.fi/pub/graphics/misc/test-images/">Test Images</a> -- <i>CCITT images (pbm), Lena etc. (Sun raster)</i> +<br> +<dd> +Stockholm test images -- <i>You have to buy a CDROM, thats all I know! :-(</i> +<dd>         mail me at <a href="mailto:singlis@cs.waikato.ac.nz">singlis@cs.waikato.ac.nz</a> if you know anything about them. +<br> +<dd> +<a href="ftp://ftp.cpsc.ucalgary.ca/pub/projects/text.compression.corpus/">Calgary Text Compression Corpus</a><i> (Text Compression, Bell, Cleary and Witten, 1990)</i> +<br> +</dt> + +<br> + +<a name="Research"> + + +<h2><i>Research Projects, Standards & Companies</i></h2> + +<p> +<dt> +<i><b>Research/Free software Groups</b></i> +<dd><a href="http://www-isl.stanford.edu/~gray/compression.html">Compression and +Classification Group</a> -- <i>ISL,EE,Stanford (22th April 1996)</i><img src="new.gif"> + +<dd><a href="http://www.bonzi.com">Voice email</a> -- <i>Lossless audio compression (18th Feb 1996)</i> + + +<dd><a href="http://www.garlic.com/biz/eotek">Electro-Optical Technologies, Inc.</a> -- <i>Consultant (12th April 1996)</i> <img src="new.gif"> + +<dd><a href="http://quicktime.apple.com">quicktime.apple.com</a> -- <i>Quicktime site (11th Mar 1996)</i> + +<dd><a href="http://www.atinternet.fr/image/">IMAGE etc.</a> -- <i>Commercial image compression software (Fractals/Wavelets) (29th Feb 1996)</i> <img src="new.gif"> + +<dd><a href="http://re7alpha.epm.ornl.gov/CcmDemo/">NCAR CCM Compression and Visualisation</a> -- <i>(18th Feb 1996)</i> <img src="new.gif"> +<br> +<dd><a href="http://ipl.rpi.edu/SPIHT/">SPIHT</a> -- <I>Wavelet Natural Image Compressor (12th Feb 1996)</i> <img src="new.gif"> +<br> +<dd><a href="http://info.lut.ac.uk/departments/el/research/sys/compression.html">Real-Time Lossless Compression Systems</a> -- <i>Loughborough University</i> <img src="new.gif"> +<br> +<dd><a href="http://saigon.ece.wisc.edu/~waveweb/QMF.html">Web site for Multirate Signal Processing</a> -- <i>University of Wisconsin, Madison</i> +<br> +<dd><a href="http://quest.jpl.nasa.gov/Info-ZIP/">Info-ZIP</a> -- <i>free, +portable Zip and UnZip utilities</i> +<br> +<dd><a href="http://cesdis.gsfc.nasa.gov/">CEDIS</a> -- <i>NASA, Maryland, Image/data compression</i> +<br> +<dd><a href="http://www.c3.lanl.gov/~brislawn/ftp.html">CIC-3 Image Compression</a> -- <i>FBI Fingerprints</i> +<br> +<dd><a href="http://rainbow.ece.ucsb.edu/scl.html">Signal Compression Lab at UCSB</a> +<br> +<dd><a href="http://isdl.ee.washington.edu/COMPRESSION/homepage.html">University of +Washington compression lab</a> -- <I>VQ, Wavelets, Shlomo</i> +<br> +</dt> + + +<p> +<dt> +<i><b>Snippets</b></i> +<dd><a href="http://www-isl.stanford.edu/~gray/iii.html">Signal Processing +and the International Information Infrastructure</a> -- <i>Web sites (22th April 1996)</i> <img src="new.gif"> +<dd><a href="http://www.scu.edu.au/ausweb95/papers/management/vanzyl/">Increasing Web bandwith</a> -- <i>comparing GIF, JPEG, Fractal compression</i> +<br> +<dd><a href="http://www.yahoo.com/Art/Computer_Generated/Fractals">Fractal Links on Yahoo</a> +<br> +<dd><a href="http://www.ddj.com/old/ddjw001d.htm">Digital Speech Compression GSM 06.10 RPE-LTP</a> -- <i>DDJ</i> +<br> +<dd><a href="http://www.crc.ricoh.com/CREW/">CREW</a> -- <i>Continuous tone loss(y/less) wavelet compression</i> +<br> +<dd><a href="ftp://ftp.csd.uwo.ca/pub/from_wu/">CALIC -- Context-based adaptive lossless image compressor</a> +<br> +<dd><a href="http://www-plateau.cs.berkeley.edu/mpeg/index.html">Berkeley MPEG</a> -- <i>MPEG tools</i> +<br> +<dd><a href="http://www.creative.net/~tristan/MPEG">MPEG Pointers and Resources</a> +<BR> +</dt> + + + + + +<p> +<dt> +<i><b>Wavelets</b></i> +<dd> +<a href="http://www.cis.upenn.edu/~eero/epic.html"> + EPIC (Efficient Pyramid Image Coder)</a> -- <i>by Eero Simoncelli</i> +<br> +<dd> +<a href="mailto://72234.2617@compuserve.com">Tucker, Michael</a> -- <i>FASTWAVE, audio/image compression</i> +<br> +<dd> +<a href="http://www.harc.edu">HARC</a> -- <i>Lossy Wavelet Compression technology</i> +<br> +<dd> +<a href="http://gabor.eecs.berkeley.edu/">UC Berkeley Wavelet Group</a> +<br> +<dd> +<a href="http://www.c3.lanl.gov/~cjhamil/Wavelets/main.html">Khoros Wavetlet and Compression Toolbox</a> +<br> +<dd> +<a href="http://arabigo.math.scarolina.edu:80/~wavelet/">The Wavelet Digest</a> +<br> +<dd> +<a href="http://jazz.rice.edu/publications.html">Rice DSP Publications Archive</a> -- <i>Wavelets, Time Frequency/Scale</i> +<br> +</dt> + +<p> +<dt> +<i><b>Fractals</b></i> +<dd> +<a href="http://inls.ucsd.edu/y/Fractals/">Fractal Image Compression</a> -- <i>Software, Pointers, Conferences</i> +<br> +<dd> +<a href="http://www.fractal.com/">Fractal Design Corporation</a> +<br> +<dd> +<a href="http://www.webcom.com/~verrando/university/ifs.html">New Fractal Image Compression program</a> +<br> +</dt> + +<p> +<dt> +<i><b>Companies</b></i> +<dd><a href="http://www.chips.ibm.com/products/aldc/index.html">IBM Hardware</a> -- <i>Compression chips (11th Mar 1996)</i> <img src="new.gif"> + +<dd><a href="http://www.summus.com">Summus Wavelet Technology</a> -- <i>Wavelet image and video compressors (11th Mar 1996)</i> <img src="new.gif"> +<dd><a href="http://www.mitsubishi.co.jp/jp/fractal/fractal.html">Fractal Image Compression</a> -- <I>Mitsubishi (18th Feb 1996)</i> <img src="new.gif"> + +<dd><a href="http://www.terran-int.com/">Terran Interactive</a> -- <i>Video compression for the Mac (1st Feb 1996)</i> <img src="new.gif"> +<br> + +<dd><a href="http://darvision.kaist.ac.kr/dvmpeg.html">DV Mpeg</a> -- <i>Windows drivers (18th Feb 1996)</I> <img src="new.gif"> +<br> + +<dd><a href="http://www.crawford.com/cs/welcome.html">Crawford Compression Services</a> -- <i>MPEG post-production (18th Feb 1996)</i> <img src="new.gif"> +<br> + +<dd><a href="http://www.shore.net/~ict">Intelligent Compression Technologies</a> <i>(18th Feb 1996)</i> <img src="new.gif"> +<br> + +<dd><a href="http://www.jpg.com">Pegasus Imaging</a> -- <i>Compression software/dev. kits (12th Feb 1996)</i> <img src="new.gif"> +<br> +<dd><a href="http://www.aladdinsys.com/">Aladdin Systems</a> -- <i>StuffIt compression products</i> +<br> +<dd><a href="http://www.stac.com/">Stac Electronics</a> +<br> +<dd><a href="http://www.ccinet.ab.ca/dcp.html">DCP Research</a> -- <i>Hardware solutions</i> +<br> +<dd><a href="http://www.aware.com/product_info/compression_overview.html">Aware Inc.</a> -- <i>Specialised compression company</i> +<br> +<dd><a href="http://www.inria.fr/rodeo/ivs.html">IVS - INRIA Videoconferencing System</a> +<br> +<dd><a href="http://sp25.ianus.cineca.it/telvox/telvoxen.htm">Telvox Teleinformatica</a> -- <i>Multiplatform Data Compressor</i> +<br> +<dd><a href="http://www.compression.com">Compression Technologies, +Inc</a> -- <i>Canada</i> +<br> +<dd><a href="http://www.optivision.com/">Optivision</a> -- <i>MPEG</i> +<br> +<dd><a href="http://www.pkware.com/">PKWARE</a> -- <i>Makers of PKZIP</i> +<br> +<dd><a href="http://www.infoanalytic.com/tayson/index.html">Multimedia Imaging Services</a> +<br> +</dt> + +<p> +<dt> +<i><b>Audio compression</b></i> +<dd><a href="http://www.iis.fhg.de/departs/amm/index.html"> Fraunhofer Institut fr Integrierte Schaltungen</a> +<br> +<dd><a href="http://svr-www.eng.cam.ac.uk/~ajr/speechCoding.html">Shorten</a> +<br> +<dd><a href="http://www.ddj.com/old/ddjw001d.htm">digital speech compression</a> +<br> +<dd><a href="http://www.cs.tu-berlin.de/~phade/audiowww.html">Audio compression references</a> +<br> +<dd><a href="http://www.fourmilab.ch/speakfree/windows/doc/compress.html">SpeakFreely - compression</a> +<br> +<dd><a href="http://www.fourmilab.ch/speakfree/windows/speak_freely.html#contents">SpeakFreely - Contents</a> +<br> diff --git a/snappy-1.1.0/testdata/fields.c b/snappy-1.1.0/testdata/fields.c new file mode 100644 index 0000000..63cdc03 --- /dev/null +++ b/snappy-1.1.0/testdata/fields.c @@ -0,0 +1,431 @@ +#ifndef lint +static char Rcs_Id[] = + "$Id: fields.c,v 1.7 1994/01/06 05:26:37 geoff Exp $"; +#endif + +/* + * $Log: fields.c,v $ + * Revision 1.7 1994/01/06 05:26:37 geoff + * Get rid of all references to System V string routines, for portability + * (sigh). + * + * Revision 1.6 1994/01/05 20:13:43 geoff + * Add the maxf parameter + * + * Revision 1.5 1994/01/04 02:40:21 geoff + * Make the increments settable (field_line_inc and field_field_inc). + * Add support for the FLD_NOSHRINK flag. + * + * Revision 1.4 1993/09/27 17:48:02 geoff + * Fix some lint complaints and some parenthesization errors. + * + * Revision 1.3 1993/09/09 01:11:11 geoff + * Add a return value to fieldwrite. Add support for backquotes and for + * unstripped backslashes. + * + * Revision 1.2 1993/08/26 00:02:50 geoff + * Fix a stupid null-pointer bug + * + * Revision 1.1 1993/08/25 21:32:05 geoff + * Initial revision + * + */ + +#include <stdio.h> +#include "config.h" +#include "fields.h" + +field_t * fieldread P ((FILE * file, char * delims, + int flags, int maxf)); + /* Read a line with fields from a file */ +field_t * fieldmake P ((char * line, int allocated, char * delims, + int flags, int maxf)); + /* Make a field structure from a line */ +static field_t * fieldparse P ((field_t * fieldp, char * line, char * delims, + int flags, int maxf)); + /* Parse the fields in a line */ +static int fieldbackch P ((char * str, char ** out, int strip)); + /* Process backslash sequences */ +int fieldwrite P ((FILE * file, field_t * fieldp, int delim)); + /* Write a line with fields to a file */ +void fieldfree P ((field_t * fieldp)); + /* Free a field returned by fieldread */ + +unsigned int field_field_inc = 20; /* Increment to increase # fields by */ +unsigned int field_line_inc = 512; /* Incr to increase line length by */ + +#ifndef USG +#define strchr index +#endif /* USG */ + +extern void free (); +extern char * malloc (); +extern char * realloc (); +extern char * strchr (); +extern int strlen (); + +/* + * Read one line of the given file into a buffer, break it up into + * fields, and return them to the caller. The field_t structure + * returned must eventually be freed with fieldfree. + */ +field_t * fieldread (file, delims, flags, maxf) + FILE * file; /* File to read lines from */ + char * delims; /* Characters to use for field delimiters */ + int flags; /* Option flags; see fields.h */ + int maxf; /* Maximum number of fields to parse */ + { + register char * linebuf; /* Buffer to hold the line read in */ + int linemax; /* Maximum line buffer size */ + int linesize; /* Current line buffer size */ + + linebuf = (char *) malloc (field_line_inc); + if (linebuf == NULL) + return NULL; + linemax = field_line_inc; + linesize = 0; + /* + * Read in the line. + */ + while (fgets (&linebuf[linesize], linemax - linesize, file) + != NULL) + { + linesize += strlen (&linebuf[linesize]); + if (linebuf[linesize - 1] == '\n') + break; + else + { + linemax += field_line_inc; + linebuf = (char *) realloc (linebuf, linemax); + if (linebuf == NULL) + return NULL; + } + } + if (linesize == 0) + { + free (linebuf); + return NULL; + } + return fieldmake (linebuf, 1, delims, flags, maxf); + } + +field_t * fieldmake (line, allocated, delims, flags, maxf) + char * line; /* Line to make into a field structure */ + int allocated; /* NZ if line allocated with malloc */ + char * delims; /* Characters to use for field delimiters */ + int flags; /* Option flags; see fields.h */ + int maxf; /* Maximum number of fields to parse */ + { + register field_t * fieldp; /* Structure describing the fields */ + int linesize; /* Current line buffer size */ + + fieldp = (field_t *) malloc (sizeof (field_t)); + if (fieldp == NULL) + return NULL; + fieldp->nfields = 0; + fieldp->linebuf = allocated ? line : NULL; + fieldp->fields = NULL; + fieldp->hadnl = 0; + linesize = strlen (line); + if (line[linesize - 1] == '\n') + { + line[--linesize] = '\0'; + fieldp->hadnl = 1; + } + /* + * Shrink the line buffer if necessary. + */ + if (allocated && (flags & FLD_NOSHRINK) == 0) + { + line = fieldp->linebuf = + (char *) realloc (fieldp->linebuf, linesize + 1); + if (fieldp->linebuf == NULL) + { + fieldfree (fieldp); + return NULL; + } + } + return fieldparse (fieldp, line, delims, flags, maxf); + } + +static field_t * fieldparse (fieldp, line, delims, flags, maxf) + register field_t * fieldp; /* Field structure to parse into */ + register char * line; /* Line to be parsed */ + char * delims; /* Characters to use for field delimiters */ + int flags; /* Option flags; see fields.h */ + int maxf; /* Maximum number of fields to parse */ + { + int fieldmax; /* Max size of fields array */ + char * lineout; /* Where to store xlated char in line */ + char quote; /* Quote character in use */ + + fieldp->nfields = 0; + fieldmax = + (maxf != 0 && maxf < field_field_inc) ? maxf + 2 : field_field_inc; + fieldp->fields = (char **) malloc (fieldmax * sizeof (char *)); + if (fieldp->fields == NULL) + { + fieldfree (fieldp); + return NULL; + } + if ((flags + & (FLD_SHQUOTES | FLD_SNGLQUOTES | FLD_BACKQUOTES | FLD_DBLQUOTES)) + == FLD_SHQUOTES) + flags |= FLD_SNGLQUOTES | FLD_BACKQUOTES | FLD_DBLQUOTES; + while (1) + { + if (flags & FLD_RUNS) + { + while (*line != '\0' && strchr (delims, *line) != NULL) + line++; /* Skip runs of delimiters */ + if (*line == '\0') + break; + } + fieldp->fields[fieldp->nfields] = lineout = line; + /* + * Skip to the next delimiter. At the end of skipping, "line" will + * point to either a delimiter or a null byte. + */ + if (flags + & (FLD_SHQUOTES | FLD_SNGLQUOTES | FLD_BACKQUOTES + | FLD_DBLQUOTES | FLD_BACKSLASH)) + { + while (*line != '\0') + { + if (strchr (delims, *line) != NULL) + break; + else if (((flags & FLD_SNGLQUOTES) && *line == '\'') + || ((flags & FLD_BACKQUOTES) && *line == '`') + || ((flags & FLD_DBLQUOTES) && *line == '"')) + { + if ((flags & FLD_SHQUOTES) == 0 + && line != fieldp->fields[fieldp->nfields]) + quote = '\0'; + else + quote = *line; + } + else + quote = '\0'; + if (quote == '\0') + { + if (*line == '\\' && (flags & FLD_BACKSLASH)) + { + line++; + if (*line == '\0') + break; + line += fieldbackch (line, &lineout, + flags & FLD_STRIPQUOTES); + } + else + *lineout++ = *line++; + } + else + { + /* Process quoted string */ + if ((flags & FLD_STRIPQUOTES) == 0) + *lineout++ = quote; + ++line; + while (*line != '\0') + { + if (*line == quote) + { + if ((flags & FLD_STRIPQUOTES) == 0) + *lineout++ = quote; + line++; /* Go on past quote */ + if ((flags & FLD_SHQUOTES) == 0) + { + while (*line != '\0' + && strchr (delims, *line) == NULL) + line++; /* Skip to delimiter */ + } + break; + } + else if (*line == '\\') + { + if (flags & FLD_BACKSLASH) + { + line++; + if (*line == '\0') + break; + else + line += fieldbackch (line, &lineout, + flags & FLD_STRIPQUOTES); + } + else + { + *lineout++ = '\\'; + if (*++line == '\0') + break; + *lineout++ = *line; + } + } + else + *lineout++ = *line++; + } + } + } + } + else + { + while (*line != '\0' && strchr (delims, *line) == NULL) + line++; /* Skip to delimiter */ + lineout = line; + } + fieldp->nfields++; + if (*line++ == '\0') + break; + if (maxf != 0 && fieldp->nfields > maxf) + break; + *lineout = '\0'; + if (fieldp->nfields >= fieldmax) + { + fieldmax += field_field_inc; + fieldp->fields = + (char **) realloc (fieldp->fields, fieldmax * sizeof (char *)); + if (fieldp->fields == NULL) + { + fieldfree (fieldp); + return NULL; + } + } + } + /* + * Shrink the field pointers and return the field structure. + */ + if ((flags & FLD_NOSHRINK) == 0 && fieldp->nfields >= fieldmax) + { + fieldp->fields = (char **) realloc (fieldp->fields, + (fieldp->nfields + 1) * sizeof (char *)); + if (fieldp->fields == NULL) + { + fieldfree (fieldp); + return NULL; + } + } + fieldp->fields[fieldp->nfields] = NULL; + return fieldp; + } + +static int fieldbackch (str, out, strip) + register char * str; /* First char of backslash sequence */ + register char ** out; /* Where to store result */ + int strip; /* NZ to convert the sequence */ + { + register int ch; /* Character being developed */ + char * origstr; /* Original value of str */ + + if (!strip) + { + *(*out)++ = '\\'; + if (*str != 'x' && *str != 'X' && (*str < '0' || *str > '7')) + { + *(*out)++ = *str; + return *str != '\0'; + } + } + switch (*str) + { + case '\0': + *(*out)++ = '\0'; + return 0; + case 'a': + *(*out)++ = '\007'; + return 1; + case 'b': + *(*out)++ = '\b'; + return 1; + case 'f': + *(*out)++ = '\f'; + return 1; + case 'n': + *(*out)++ = '\n'; + return 1; + case 'r': + *(*out)++ = '\r'; + return 1; + case 'v': + *(*out)++ = '\v'; + return 1; + case 'X': + case 'x': + /* Hexadecimal sequence */ + origstr = str++; + ch = 0; + if (*str >= '0' && *str <= '9') + ch = *str++ - '0'; + else if (*str >= 'a' && *str <= 'f') + ch = *str++ - 'a' + 0xa; + else if (*str >= 'A' && *str <= 'F') + ch = *str++ - 'A' + 0xa; + if (*str >= '0' && *str <= '9') + ch = (ch << 4) | (*str++ - '0'); + else if (*str >= 'a' && *str <= 'f') + ch = (ch << 4) | (*str++ - 'a' + 0xa); + else if (*str >= 'A' && *str <= 'F') + ch = (ch << 4) | (*str++ - 'A' + 0xa); + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + /* Octal sequence */ + origstr = str; + ch = *str++ - '0'; + if (*str >= '0' && *str <= '7') + ch = (ch << 3) | (*str++ - '0'); + if (*str >= '0' && *str <= '7') + ch = (ch << 3) | (*str++ - '0'); + break; + default: + *(*out)++ = *str; + return 1; + } + if (strip) + { + *(*out)++ = ch; + return str - origstr; + } + else + { + for (ch = 0; origstr < str; ch++) + *(*out)++ = *origstr++; + return ch; + } + } + +int fieldwrite (file, fieldp, delim) + FILE * file; /* File to write to */ + register field_t * fieldp; /* Field structure to write */ + int delim; /* Delimiter to place between fields */ + { + int error; /* NZ if an error occurs */ + register int fieldno; /* Number of field being written */ + + error = 0; + for (fieldno = 0; fieldno < fieldp->nfields; fieldno++) + { + if (fieldno != 0) + error |= putc (delim, file) == EOF; + error |= fputs (fieldp->fields[fieldno], file) == EOF; + } + if (fieldp->hadnl) + error |= putc ('\n', file) == EOF; + return error; + } + +void fieldfree (fieldp) + register field_t * fieldp; /* Field structure to free */ + { + + if (fieldp == NULL) + return; + if (fieldp->linebuf != NULL) + free ((char *) fieldp->linebuf); + if (fieldp->fields != NULL) + free ((char *) fieldp->fields); + free ((char *) fieldp); + } diff --git a/snappy-1.1.0/testdata/geo.protodata b/snappy-1.1.0/testdata/geo.protodata Binary files differnew file mode 100644 index 0000000..c4e3e0d --- /dev/null +++ b/snappy-1.1.0/testdata/geo.protodata diff --git a/snappy-1.1.0/testdata/grammar.lsp b/snappy-1.1.0/testdata/grammar.lsp new file mode 100644 index 0000000..c60a993 --- /dev/null +++ b/snappy-1.1.0/testdata/grammar.lsp @@ -0,0 +1,94 @@ +;;; -*- Mode: Lisp; Syntax: Common-Lisp; -*- + +(define-language + :grammar + '(((S $any) -> (S1 $any)) + ((S (Compound $s1 $s2)) -> (S1 $s1) (Conjunction) (S1 $s2)) + + ((S1 (Statement $v)) -> (NP $subj) (VP $subj $tense $v)) + ((S1 (Acknowledge $a)) -> (Acknowledge $a)) + ((S1 (Command $v)) -> (VP Self present $v)) + ((S1 (Question $v)) -> (Aux $tense) (NP $subj) (VP $subj $tense $v)) + ((S1 (Question $v)) -> (Be $tense) (NP $subj) (Be-Arg $subj $tense $v)) + + ((Be-Arg $subj $tense (Occur $tense (loc $subj $loc))) -> + (Loc-Adjunct $tense (loc $subj $loc))) + + ((VP $subj $tense (Occur $tense $v)) -> (VP1 $subj $tense $v)) + ((VP $subj $tense (Occur $tense $v)) -> (Aux $tense)(VP1 $subj present $v)) + + ((VP1 $subj $tense $v) -> (VP2 $subj $tense $v) (Adjunct? $v)) + + ((VP2 $subj $tense ($rel $subj $loc)) -> + (Verb/in $rel $tense)) + ((VP2 $subj $tense ($rel $subj $loc $obj)) -> + (Verb/tr $rel $tense) (NP $obj)) + ((VP2 $subj $tense ($rel $subj $loc $obj $obj2)) -> + (Verb/di $rel $tense) (NP $obj) (NP $obj2)) + ((VP2 $subj $tense (loc $subj $loc)) -> + (Be $tense) (Loc-Adjunct $tense (loc $subj $loc))) + + ((NP $n) -> (Pronoun $n)) + ((NP $n) -> (Article) (Noun $n)) + ((NP $n) -> (Noun $n)) + ((NP ($x $y)) -> (Number $x) (Number $y)) + + ((PP ($prep $n)) -> (Prep $prep) (NP $n)) + ((Adjunct? $v) ->) + ((Adjunct? $v) -> (Loc-Adjunct $tense $v)) + #+Allegro ((Loc-Adjunct $tense ($rel $subj $loc @rest)) -> (PP $loc)) + #+Allegro ((Loc-Adjunct $tense ($rel $subj $loc @rest)) -> (Adjunct $loc)) + #+Lucid ((Loc-Adjunct $tense ($rel $subj $loc . $rest)) -> (PP $loc)) + #+Lucid ((Loc-Adjunct $tense ($rel $subj $loc . $rest)) -> (Adjunct $loc)) + + ) + :lexicon + '( + ((Acknowledge $a) -> (yes true) (no false) (maybe unknown) (huh unparsed)) + ((Adjunct $loc) -> here there (nearby near) near left right up down) + ((Article) -> a an the) + ((Aux $tense) -> (will future) (did past) (do $finite)) + ((Be $tense) -> (am present) (are present) (is present) (be $finite) + (was past) (were past)) + ((Conjunction) -> and --) + ((Noun $n) -> gold Wumpus pit breeze stench glitter nothing) + ((Number $n) -> 0 1 2 3 4 5 6 7 8 9) + ((Prep $prep) -> in at to near) + ((Pronoun $n) -> (you self) (me master) (I master)) + + ((Verb/in $rel $tense) -> (go move $finite) (went move past) + (move move $finite) (move move past) (shoot shoot $finite)) + ((Verb/tr $rel $tense) -> (move carry $finite) (moved carry past) + (carry carry $finite) (carry carried past) + (grab grab $finite) (grab grabbed past) (get grab $finite) + (got grab past) (release release $finite) (release release past) + (drop release $finite) (dropped release past) (shoot shoot-at $finite) + (shot shoot-at past) (kill shoot-at $finite) (killed shoot-at past) + (smell perceive $finite) (feel perceive $finite) (felt perceive past)) + ((Verb/di $rel $tense) -> (bring bring $finite) (brought bring past) + (get bring $finite) (got bring past)) + )) + +(defparameter *sentences* + '((I will shoot the wumpus at 4 4) + (yes) + (You went right -- I will go left) + (carry the gold) + (yes and no) + (did you bring me the gold) + (a breeze is here -- I am near 5 3) + (a stench is in 3 5) + (a pit is nearby) + (is the wumpus near) + (Did you go to 3 8) + (Yes -- Nothing is there) + (Shoot -- Shoot left) + (Kill the wumpus -- shoot up))) + +(defun ss (&optional (sentences *sentences*)) + "Run some test sentences, and count how many were not parsed." + (count-if-not + #'(lambda (s) + (format t "~2&>>> ~(~{~a ~}~)~%" s) + (write (second (parse s)) :pretty t)) + *sentences*)) diff --git a/snappy-1.1.0/testdata/house.jpg b/snappy-1.1.0/testdata/house.jpg Binary files differnew file mode 100644 index 0000000..6b3aae8 --- /dev/null +++ b/snappy-1.1.0/testdata/house.jpg diff --git a/snappy-1.1.0/testdata/html b/snappy-1.1.0/testdata/html new file mode 100644 index 0000000..ef768cc --- /dev/null +++ b/snappy-1.1.0/testdata/html @@ -0,0 +1 @@ + content: @ 1099872000000000: 'HTTP/1.1 200 OK\r\nX-Google-Crawl-Date: Mon, 08 Nov 2004 17:22:09 GMT\r\nContent-Type: text/html\r\nConnection: close\r\nX-Powered-By: PHP/4.3.8\r\nServer: Apache/1.3.31 (Unix) mod_gzip/1.3.19.1a PHP/4.3.8\r\nDate: Mon, 08 Nov 2004 17:19:07 GMT\r\n\r\n <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n<BASE target=\"_top\">\r\n\n<TITLE>Micro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux</TITLE>\r\n<META NAME=\"Description\" CONTENT=\"Micro Achat : Ordinateurs, PDA\">\r\n<META NAME=\"Keywords\" CONTENT=\"Micro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\">\r\n<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://www.01net.com/styles/01net.css\">\r\n<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://www.01net.com/styles/tableau_autre.css\">\r\n<STYLE type=text/css>\r\nA{TEXT-DECORATION: none;color:#000000;}\r\nA:visited{TEXT-DECORATION: none;color:#000000;}\r\n</STYLE>\r\n<SCRIPT LANGUAGE=\"JavaScript1.1\">\r\nvar sameAsBigDay = new Date();\r\nvar ord = (sameAsBigDay.getTime());\r\nvar pubsMotsCles = \"\";\r\nvar exc;\r\nvar lienhautdepage = \"\";\r\nvar etatmessage = false;\r\nvar enchainement = false;\r\nsas_tmstp=Math.round(Math.random()*10000000000);\r\nfunction SmartAdServer(sas_pageid,sas_formatid,sas_master,sas_target) {\r\n if ((sas_master!=\'M\')&&(sas_master!=\'S\')) {sas_master=\'S\'};\r\n document.write(\'<SCR\'+\'IPT SRC=\"http://www.smartadserver.com/call/pubj/\' + sas_pageid + \'/\' + sas_formatid + \'/\'+sas_master + \'/\' + sas_tmstp + \'/\' + escape(sas_target) + \'?\"></SCR\'+\'IPT>\');\r\n}\r\n</SCRIPT>\r\n<SCRIPT LANGUAGE=\"JAVASCRIPT\" SRC=\"http://www.01net.com/js/exc.js\"></SCRIPT>\r\n<script language=\"javascript\" src=\"http://telecharger.01net.com/shopping/js/headservicesV4.js\"></script>\r\n<noscript>\r\n<a href=\"http://cinema.01net.com\">T\351l\351charger des bandes-annonces, des teasers, des extraits et des making of de vos films cin\351ma pr\351f\351r\351s</a>,\r\n<a href=\"http://www.01net.com/BusinessTechnologies/\">Portail leader de l\'information sur les nouvelles technologies - Actualites et enquetes sur l\'informatique et les NTIC (nouvelles technologies de l\'information et la communication). Exemples de sujets : e-business, telecoms, CRM, VPN, 3G, DSL, fournisseurs d\'acces, Linux, piratage, securite informatique, progiciel...</a><br>\r\n<a href=\"http://www.01net.com/securite_informatique.html\">s\351curit\351 informatique</a>,\r\n<a href=\"http://www.01net.com/strategies_ntic.html\">strat\351gies NTIC</a>,\r\n<a href=\"http://www.01net.com/piratage_informatique.html\">piratage informatique</a>,\r\n<a href=\"http://www.01net.com/technologie_dsl.html\">technologie DSL</a>,\r\n<a href=\"http://www.01net.com/solutions_vpn.html\">solutions VPN</a>,\r\n<a href=\"http://www.01net.com/strategie_e-business.html\">strat\351gies</a>,\r\n<a href=\"http://www.01net.com/outils_crm.html\">outils CRM</a>,\r\n<a href=\"http://www.01net.com/logiciel_linux.html\">logiciel Linux</a>,\r\n<a href=\"http://www.01net.com/fournisseur_d_acces.html\">fournisseur d\'acc\350s</a>,\r\n<a href=\"http://www.01net.com/progiciel.html\">progiciel</a>,\r\n<a href=\"http://www.01net.com/stockage_de_donnees.html\">stockage de donn\351es</a>,\r\n<a href=\"http://www.01net.com/etudes_solution_informatique.html\">\351tudes solution informatique</a>,\r\n<a href=\"http://www.01net.com/NTIC.html\">NTIC</a>,\r\n<a href=\"http://www.01net.com/actualite_technologie.html\">actualit\351 technologie</a>,\r\n<a href=\"http://www.01net.com/etude_materiel_informatique.html\">\351tude mat\351riel informatique</a>,\r\n<a href=\"http://www.01net.com/actus/\">actualit\351s des nouvelles technologies</a>,\r\n<a href=\"http://www.01net.com/MicroPerso/\">enqu\352tes et trucs et astuces sur le mat\351riel informatique, les logiciels, les fournisseurs d\'acc\350s...</a>,\r\n<a href=\"http://www.01net.com/emploi/\">emploi et formations informatiques : offres d\'emploi informatique...</a>,\r\n<a href=\"http://www.01net.com/produits/\">fiches, tests mat\351riels et logiciels en informatique</a>,\r\n<a href=\"http://www.01net.com/01informatique\">01 Informatique</a>,\r\n<a href=\"http://www.caractere.net\">Caract\350re, le site des professionnels de l\'imprim\351 - communication imprim\351e, \351dition, emballage, encres, finition, flexographie, h\351liogravure, impression, imprimerie, imprimeur, industries graphiques, num\351rique, offset, papier, pr\351presse, presse, print, reprographie, s\351rigraphie, typographie</a>,\r\n<a href=\"http://www.01net.com/decisionmicro\">Decision Micro</a>,\r\n<a href=\"http://www.01net.com/decisioninformatique\">D\351cision Informatique</a>,\r\n<a href=\"http://www.01net.com/01reseaux\">01 R\351seaux</a>,\r\n<a href=\"http://logiciel.telecharger.01net.com/\">logiciel</a>,\r\n<a href=\"http://developpeur.telecharger.01net.com/windows/Programmation/\">d\351veloppeur programmation</a>,\r\n<a href=\"http://anti-virus.telecharger.01net.com\">anti-virus</a>,\r\n<a href=\"http://gravure-cd-dvd.telecharger.01net.com/windows/Utilitaire/gravure/\">gravure cd dvd</a>,\r\n<a href=\"http://codec.telecharger.01net.com/windows/Multimedia/encodeurs_et_decodeurs/\">codec encodeur d\351codeur</a>,\r\n<a href=\"http://software.telecharger.01net.com/\">software</a>,\r\n<a href=\"http://logiciels.telecharger.01net.com/\">logiciels</a>,\r\n<a href=\"http://gratuit.telecharger.01net.com/\">gratuit</a>,\r\n<a href=\"http://p2p.telecharger.01net.com/windows/Internet/partage/\">p2p peer to peer partage de fichiers</a>,\r\n<a href=\"http://securite.telecharger.01net.com/windows/Utilitaire/cryptage_et_securite/\">s\351curit\351</a>,\r\n<a href=\"http://compression-decompression.telecharger.01net.com/windows/Utilitaire/compression_et_decompression/\">compression et d\351compression</a>,\r\n<a href=\"http://divx.telecharger.01net.com/\">divx</a>,\r\n<a href=\"http://utilitaire.telecharger.01net.com/windows/Utilitaire/\">utilitaire</a>,\r\n<a href=\"http://jeux.telecharger.01net.com/windows/Jeux/\">jeux</a>,\r\n<a href=\"http://loisirs.telecharger.01net.com/windows/Loisirs/\">loisirs</a>,\r\n<a href=\"http://mac.telecharger.01net.com/mac/\">mac</a>,\r\n<a href=\"http://linux.telecharger.01net.com/linux/\">linux</a>,\r\n<a href=\"http://shareware.telecharger.01net.com/\">shareware</a>,\r\n<a href=\"http://video-dvd.telecharger.01net.com/windows/Multimedia/lecteurs_video_dvd/\">vid\351o dvd</a>,\r\n<a href=\"http://multimedia.telecharger.01net.com/\">multim\351dia</a>,\r\n<a href=\"http://traduction.telecharger.01net.com/windows/Bureautique/traducteur/\">traduction</a>,\r\n<a href=\"http://mp3.telecharger.01net.com/windows/Multimedia/lecteurs_audio_mp3_cd/\">mp3</a>,\r\n<a href=\"http://tchat.telecharger.01net.com/windows/Internet/communication/\">tchat</a>\r\n<a href=\"http://chat.telecharger.01net.com/windows/Internet/communication/\">chat</a>,\r\n<a href=\"http://musique.telecharger.01net.com/\">musique</a>,\r\n<a href=\"http://mobile.telecharger.01net.com/mobile/\">mobile</a>,\r\n<a href=\"http://telephone_portable.telecharger.01net.com/mobile/\">t\351l\351phone portable</a>,\r\n<a href=\"http://telephone_mobile.telecharger.01net.com/mobile/\">t\351l\351phone mobile</a>\r\n</noscript>\r\n</head>\r\n</head>\r\n<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#000000\" marginwidth=0 marginheight=0 topmargin=0 leftmargin=0>\r\n<!-- + ZONE TETE -->\r\n<!-- ********** DEBUT MODELE INTERNE TETES MHA-tetev4 //-->\r\n<table width=100% height=66 cellspacing=0 cellpadding=0 border=0 bgcolor=#ffffff>\r\n\t<tr>\r\n\t\t<td height=8 colspan=2><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=8></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td valign=bottom><a href=\"http://microachat.01net.com\"><img src=\"http://www.01net.com/img/v4/logos_tete/tet_gauche-mha.gif\" border=0></a></td>\r\n\t\t<td valign=bottom bgcolor=#FFFFFF bbackground=\"http://www.01net.com/img/v4/tet_droite.gif\" width=100% style=\"background-image:url(/img/v4/tet_droite-mha.gif);background-position:bottom;background-repeat:repeat-x\"><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=66 align=left hspace=0 vspace=0></td>\r\n\t</tr>\r\n</table>\r\n<table width=100% cellspacing=0 cellpadding=0 border=0 bgcolor=#ffffff>\r\n\t<tr>\r\n\t\t<td valign=top background=\"http://www.01net.com/img/v4/fond_date-mha.gif\" height=18 width=500><img src=\"http://www.01net.com/img/dot.gif\" width=500 height=1><br><img src=\"http://www.01net.com/img/dot.gif\" width=19 height=1><font face=\"Arial\" size=1 color=#666666 style=\"font-size: 11px;\"><b>Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004 | 16:45</b></font></td>\r\n\t\t<td width=100% background=\"http://www.01net.com/img/v4/fond_date2-mha.gif\" height=18></td>\r\n\t</tr>\r\n</table>\r\n<!-- ********** FIN MODELE INTERNE TETES MHA-tetev4 //--> <!-- - ZONE TETE -->\r\n<!-- ***************************************************************************************************************************************************************************************************************************** //-->\r\n<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n<!-- DEBUT PARTIE PUB //-->\r\n\t<tr>\r\n<td align=center valign=middle colspan=2 background=\"http://www.01net.com/img/v4/fond_bann.gif\"><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br>\r\n<!-- + ZONE Z0 -->\r\n<SCRIPT LANGUAGE=\"JAVASCRIPT\">\r\nvar fa = \"\";\r\nvar fab = document.URL.toString();\r\nif (fab.indexOf(\"?fa\") != -1 || fab.indexOf(\"&fa\") != -1)\r\n{\r\nfa = \";!category=fai\";\r\n}\r\nvar etatmessage = false;\r\nvar enchainement = false;\r\n</SCRIPT>\r\n<SCRIPT LANGUAGE=\"JavaScript1.1\">\r\nsas_pageid=\'167/3872\';\r\nsas_formatid=95;\t\t\t// Format : Banner/Scope 468x60\r\nsas_master=\'M\';\t\t\t// Master : M=master or S=slave\r\nsas_target=exc + \'rubrique\';\t\t\t// Targeting\r\nSmartAdServer(sas_pageid,sas_formatid,sas_master,sas_target);\r\n</SCRIPT>\r\n <!-- - ZONE Z0 --></td>\r\n\t\t<td valign=top width=23 background=\"http://www.01net.com/img/v4/sep_verticale.gif\" ><img src=\"http://www.01net.com/img/dot.gif\" width=23 height=1><br></td>\r\n<td valign=top width=100% bgcolor=\"ffffff\" rowspan=3><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=125><br>\r\n<!-- +ZONE_Dn -->\r\n<!-- + ZONE D0 -->\r\n<!-- DEBUT MA_ColD -->\r\n<div style=\"background-color : #ffffff; width : 150px; padding-left : 5px; padding-right : 5px; font-family : Arial, Helvetica;\">\n\t\t\t\t\t<table style=\"border-spacing : 0; width : 146px; margin-top : 0px;\" cellspacing=\"0\">\n\t\t\t\t\t<tr><th colspan=\"2\" style=\"padding : 0;\"><img src=\"http://micro-achat.01net.com/img/utils/micro-achat/tete-produitsrecherches.gif\" alt=\"\" /></th></tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Imagerie </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/12537-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/imagerie/moniteurs-lcd/l1720b/\">LG L1720B</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">332.89 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Ordinateurs </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/4043-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/desktops/veriton-7600g/\">Acer Veriton 7600G</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">705 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Ordinateurs </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/1903-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/sn95g5/\">Shuttle SN95G5</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">375 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Composants </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/1259-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/composants/cartes-meres/a7n8x-e-deluxe/\">Asus A7N8X-E Deluxe</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">91.99 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Composants </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/4687-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/composants/ventilateur/sp-94/\">Thermalright SP-94</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">49 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr></table>\n\t\t\t\t<table style=\"border-spacing : 0px 1px; width : 146px; margin-top : 15px;\" cellspacing=\"0\">\n\t\t\t\t<tr><th colspan=\"2\" style=\"padding : 0;\"><img src=\"http://micro-achat.01net.com/img/utils/micro-achat/tete-revendeurmisajour.gif\" alt=\"\" /></th></tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">1 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Rhone-Alpes/Ain/pc-look\" style=\"color : #000000; text-decoration : none;\">PC Look</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">2 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Nord-Pas-de-Calais/Pas-de-Calais/atelier-informatique\" style=\"color : #000000; text-decoration : none;\">Atelier Informatique</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">3 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Val-de-Marne/zanax-multimedia\" style=\"color : #000000; text-decoration : none;\">Zanax Multim\351dia</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">4 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Hauts-de-Seine/misteroops\" style=\"color : #000000; text-decoration : none;\">MISTEROOPS</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">5 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/12/168-golden-avenue\" style=\"color : #000000; text-decoration : none;\">168 Golden Avenue</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">6 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Seine-Saint-Denis/microchoix\" style=\"color : #000000; text-decoration : none;\">microchoix</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">7 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/12/e-soph\" style=\"color : #000000; text-decoration : none;\">e-Soph</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">8 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/13/pc-price-club\" style=\"color : #000000; text-decoration : none;\">PC Price Club</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">9 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Seine-et-Marne/pc-77\" style=\"color : #000000; text-decoration : none;\">PC 77</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">10 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Alsace/Bas-Rhin/web-in-informatique\" style=\"color : #000000; text-decoration : none;\">Web In Informatique</a></td>\n\t\t\t\t</tr></table>\n\t\t\t\t</div>\n\t\t\t\t<br>\r\n<!-- FIN MA_ColD --> <!-- - ZONE D0 -->\r\n<!-- + ZONE D1 -->\r\n<!-- - ZONE D1 -->\r\n<!-- + ZONE D2 -->\r\n<!-- - ZONE D2 -->\r\n<!-- -ZONE_Dn -->\r\n</td>\r\n\t</tr>\r\n<!-- FIN PARTIE PUB //-->\r\n\t<tr>\r\n\t\t<td valign=top width=193 height=100% background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n\t\t<!-- contenu colonne de gauche //-->\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0 background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n<!-- +ZONE_Gn -->\r\n<!-- + ZONE G0 -->\r\n<tr><!-- ********** DEBUT MHA_MenusChainesV4 //-->\r\n<td valign=top>\n<table border=0 cellpadding=0 cellspacing=0 width=193 bgcolor=#FFFFFF>\n<tr>\n<td background=\"/img/v4/menus/motifgauche_menus.gif\" width=20 rowspan=2><img src=\"/img/dot.gif\" width=20 height=20></td>\n<td width=173 colspan=2 bgcolor=#FFFFFF><img src=\"/img/dot.gif\" width=173 height=20></td>\n</tr>\n<tr>\n<td valign=top width=159>\n\n<a href=\"http://www.01net.com\"><img src=\"/img/v4/menus/mha/home01net-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com\"><img src=\"/img/v4/menus/mha/home-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4317.html\"><img src=\"/img/v4/menus/mha/ordinateurs-2.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4318.html\"><img src=\"/img/v4/menus/mha/composants-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4319.html\"><img src=\"/img/v4/menus/mha/stockage-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4320.html\"><img src=\"/img/v4/menus/mha/image-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4321.html\"><img src=\"/img/v4/menus/mha/peripheriques-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4322.html\"><img src=\"/img/v4/menus/mha/reseaux-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4323.html\"><img src=\"/img/v4/menus/mha/accessoires-1.gif\" width=159 border=0></a><br>\n<a href=\"http://micro-achat.01net.com/guide-produits/\"><img src=\"/img/v4/menus/mha/comparateur-1.gif\" width=159 border=0></a><br>\n<a href=\"http://micro-achat.01net.com/annuaire/\"><img src=\"/img/v4/menus/mha/annuaire-1.gif\" width=159 border=0></a><br></td>\n<td width=14><img src=\"/img/dot.gif\" width=14 height=14></td>\n</tr>\n<tr>\n<td colspan=3><img src=\"/img/v4/menus/bas_menus.gif\" width=193 height=31></td>\n</tr>\n</table></td><!-- ********** FIN MHA_MenusChainesV4 //--> </tr><!-- - ZONE G0 -->\r\n<!-- + ZONE G1 -->\r\n<tr><!-- DEBUT MODELE RUBRIQUE V4ColGaucheMHA //-->\r\n<!-- ********** DEBUT BLOC DernieresNewsTC //-->\r\n<td valign=top>\r\n<!-- DEBUT RECHERCHE MHA -->\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n\t\t\t<td valign=top background=\"http://microachat.01net.com/img/v4/fond_rech_mha.gif\" height=98 style=\"background-repeat:no-repeat;\"><form method=\"get\" name=\"chercher\" action=\"http://www.01net.com/aiguillage_recherche/1,6138,,00.html\"><img src=\"http://microachat.01net.com/img/dot.gif\" width=193 height=17><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><input type=\"text\" name=\"fullText\" style=\"width:130px;font:12px;\"><br><img src=\"http://microachat.01net.com/img/dot.gif\" width=1 height=6><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><select name=\"sousArbo\" style=\"width:130px;font:12px;\">\r\n\t\t\t<option value=\"mha\">dans Micro Achat\r\n\t\t\t<option value=\"cmp\">les prix\r\n\t\t\t<option value=\"ann\">les revendeurs\r\n\t\t\t<option value=\"2641\">tout 01net.\r\n\t\t\t<option value=\"emploi\">les offres d\'emploi\r\n\t\t\t<option value=\"telecharger\"> telecharger.com\r\n\t\t\t<option value=\"web\">le web\r\n\t\t\t</select><br><img src=\"http://microachat.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"http://microachat.01net.com/img/v4/ok_bloc_recher_mha.gif\" border=\"0\"></form>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=10 vspace=0>\r\n<!-- FIN RECHERCHE MHA -->\r\n <!-- modele TCFilColgTitV4 //-->\r\n <table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top>\r\n\t\t<table width=155 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=2><img src=\"http://www.01net.com/img/ban/Ban_v4_DernieresNews01net.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4></td>\r\n\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/256059.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">CD et DVD bient\364t insensibles aux rayures<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/255796.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">OpenOffice gagne son service<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/255731.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">La messagerie en cinq minutes selon Ipswitch<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top colspan=2><A HREF=\"http://www.01net.com/actus/\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\">> toutes les news<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td colspan=2><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/crochet_bleuhaut_155.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20> <!-- ********** FIN BLOC DernieresNewsTC //-->\r\n<!-- ********** DEBUT BLOC NL_MHA //-->\r\n<SCRIPT language=\"javascript\" src=\"http://www.01net.com/js/lib.js\"></SCRIPT>\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<FORM name=\"formgen\" method=\"get\" action=\"http://microachat.01net.com/outils/newsletter_MicroAchat.html\" onSubmit=\"return validateForm(this)\">\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=155 colspan=4><img src=\"http://www.01net.com/img/ban/Ban_V4_Newslett.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=10><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=1 bgcolor=#CC0000><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t<td width=153>\r\n\t\t<table width=153 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=10><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t\t\t<td valign=top><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefinefd_ffffff.gif\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Recevez chaque jour l\'actualit\351 des produits et des promos<br></font>\r\n\t\t\t\t<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><input type=\"text\" name=\"email\" size=\"14\" style=\"width:130px;font:12px;\" value=\"entrez votre e-mail\" onFocus=\"javascript:document.formgen.email.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"http://www.01net.com/img/v4/ok_bloc_recher.gif\" border=\"0\"></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td width=1 bgcolor=#CC0000><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=155 colspan=4><img src=\"http://www.01net.com/img/v4/base_newsletters.gif\"></td>\r\n\t\t</FORM>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20>\r\n<SCRIPT language=\"Javascript\">\r\ndocument.formgen.email.validator= \'notNullEmailPat\';\r\ndocument.formgen.email.nomvalidator= \'E-mail\';\r\n</SCRIPT>\r\n<!-- ********** FIN BLOC NL_MHA //-->\r\n</td>\r\n</tr>\r\n<tr>\r\n<!-- ********** DEBUT BLOC Actus ActusUneV4 //-->\r\n<td valign=top background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n<table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top>\r\n\t\t<table width=155 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/ban/Ban_v4_LaUne.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/entreprise/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Entreprise</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://www.01net.com/article/255737.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">Quand le billet papier s\'envole vers la d\351mat\351rialisation</font></a></td>\r\n\t\t\t\t<td valign=top width=2><img src=\"http://www.01net.com/img/dot.gif\" width=2 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/article/255737.html\"><img src=\"http://www.01net.com/img/MEA_v4/billet_virtuel-65.jpg\" border=0></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/pratique/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Trucs et astuces</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255698.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">D\351pannez Windows XP</font></a></td>\r\n\t\t\t\t<td valign=top width=2><img src=\"http://www.01net.com/img/dot.gif\" width=2 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/article/255698.html\"><img src=\"http://www.01net.com/img/MEA_v4/depannez_XP-65.jpg\" border=0 ></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t</tr>\r\n\t\t <tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top colspan=3><a href=\"http://www.01net.com/conso/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Conso</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255524.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">Vos photos sur papier imprimante ou labo ?<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t<!-- exemple de lien avec pseudorub pour produits et tests -->\r\n\t\t<!-- <a href=\"/outils/PseudoRub.php?base=test-comp&rub=1730&pseudo=test-comp20041005\"> -->\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top colspan=3><a href=\"http://www.01net.com/produits/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Produits & Tests</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255782.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">5 programmes d\222encodage vid\351o gratuits<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20>\r\n</td>\r\n<!-- ********** FIN BLOC Actus ActusUneV4 //--> </tr>\r\n<tr>\r\n<td>\r\n<table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top><a href=\"mailto:s.cohen@micro-achat.fr\"><img border=0 src=\"http://www.01net.com/img/v4/espace-revendeurs.gif\"></td>\r\n\t</tr>\r\n</table>\r\n<br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20></td>\r\n<!-- FIN MODELE RUBRIQUE V4ColGaucheMHA //--> </tr><!-- - ZONE G1 -->\r\n<!-- + ZONE G2 -->\r\n<!-- - ZONE G2 -->\r\n<!-- + ZONE G3 -->\r\n<!-- - ZONE G3 -->\r\n<!-- + ZONE G4 -->\r\n<!-- - ZONE G4 -->\r\n<!-- + ZONE G5 -->\r\n<!-- - ZONE G5 -->\r\n<!-- + ZONE G6 -->\r\n<!-- - ZONE G6 -->\r\n<!-- + ZONE G7 -->\r\n<!-- - ZONE G7 -->\r\n<!-- + ZONE G8 -->\r\n<!-- - ZONE G8 -->\r\n<!-- + ZONE G9 -->\r\n<!-- - ZONE G9 -->\r\n<!-- + ZONE GA -->\r\n<!-- - ZONE GA -->\r\n<!-- + ZONE GB -->\r\n<!-- - ZONE GB -->\r\n<!-- + ZONE GC -->\r\n<!-- - ZONE GC -->\r\n<!-- + ZONE GD -->\r\n<!-- - ZONE GD -->\r\n<!-- + ZONE GE -->\r\n<!-- - ZONE GE -->\r\n<!-- + ZONE GF -->\r\n<!-- - ZONE GF -->\r\n<!-- -ZONE_Gn -->\r\n\t\t</table>\r\n\t\t<!-- fin contenu colonne de gauche //-->\r\n\t\t</td>\r\n<!-- ***************************************************************** DEBUT VENTRE*********************************************************************************************************************************************** //-->\r\n<!-- DEBUT WORK -->\r\n\t\t<td valign=top width=625 bgcolor=#ffffff><img src=\"http://www.01net.com/img/dot.gif\" width=625 height=1><br>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_hn -->\r\n<!-- + ZONE h0 -->\r\n<!-- MA_ban_int -->\r\n<td valign=\"top\">\r\n<img src=\"/img/dot.gif\" height=\"18\"><br>\r\n<!-- pour ordipda -->\r\n<table width=\"625\" cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"/img/v4/MA/Ban_MA_ordis.gif\"></td>\r\n\t</tr>\r\n</table>\r\n\t</td>\r\n<!-- /MA_ban_int --> <!-- - ZONE h0 -->\r\n<!-- + ZONE h1 -->\r\n<!-- - ZONE h1 -->\r\n<!-- + ZONE h2 -->\r\n<!-- - ZONE h2 -->\r\n<!-- -ZONE_hn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_Hn -->\r\n<!-- + ZONE H0 -->\r\n<!-- Ma_int_Leader -->\r\n <td valign=top>\r\n<img src=\"/img/dot.gif\" width=1 height=18><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=320>\r\n<tr>\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<td width=144 valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=143 height=1 vspace=0><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:11px;>Portable</font><br>\r\n<A HREF=\"/article/256198.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=font-size:14px;><b>Un nouvel ultra portable r\351alis\351 par Nec</b></font></a><br>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/256198.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67509.jpg.res_100-100.jpg\" border=0 hspace=0 vspace=0></a><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n<font face=arial,helvetica size=2 color=#000000 style=font-size:12px;><img src=\"/img/v4/flechefine_fondtransp.gif\">Le Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.</font><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:12px;>\340 partir de 1663 \200</font>\r\n</td>\r\n<td width=17 background=\"/img/v4/MA/v4-fond-sep-mea-leader.gif\"><img src=\"/img/dot.gif\" width=17 height=1></td>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<td width=144 valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=143 height=1 vspace=0><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:11px;>Portable</font><br>\r\n<A HREF=\"/article/255194.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=font-size:14px;><b>Asus pr\351sente trois petits nouveaux dans la gamme A3N</b></font></a><br>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255194.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67168.jpg.res_100-100.jpg\" border=0 hspace=0 vspace=0></a><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n<font face=arial,helvetica size=2 color=#000000 style=font-size:12px;><img src=\"/img/v4/flechefine_fondtransp.gif\">Ces trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.</font><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:12px;>\340 partir de 1346 \200</font>\r\n</td>\r\n<td width=15><img src=\"/img/dot.gif\" width=15 height=1></td>\r\n\t\t\t\t</tr>\r\n</table>\r\n</td>\r\n<!-- /Ma_int_Leader --> <!-- - ZONE H0 -->\r\n<!-- + ZONE H1 -->\r\n<!-- - ZONE H1 -->\r\n<!-- + ZONE H2 -->\r\n<!-- MA_BP_MP -->\r\n<td valign=\"top\" width=\"100%\">\r\n\t<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n\t<tr>\r\n\t<td width=\"50%\" valign=\"top\">\r\n\t<!-- DEBUT MicroAchat MA_BonPlan -->\r\n<td valign=top>\r\n<img src=\"/img/dot.gif\" width=1 height=18><br>\r\n<table border=0 cellpadding=1 cellspacing=0 width=145 bgcolor=#CC0000>\r\n<tr>\r\n<td align=center><font face=arial,helvetica size=1 color=#FFFFFF style=\"font-size:11px;\">BON PLAN</a></font></td>\r\n</tr>\r\n<tr>\r\n<td width=145>\r\n<div style=\"padding:5px;padding-left:5px;padding-fight:5px;margin:0px;margin-left:1px;margin-right:1px;background-color:#FFFFFF;\">\r\n<img src=\"/img/microachat/logo_shuttle_SB83G5.gif\" border=0><br>\r\n<font face=arial,helvetica size=2 color=#CC0000 style=\"font-size:12px;\">Les derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.<br></font>\r\n<center><a href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/sb83g5/?fabriquant=1&page=1&tri=titre\"><img src=\"/img/microachat/mea_shuttle_SB83G5.gif\" border=0 vspace=5></a><br></center>\r\n<center>\r\n<font face=arial,helvetica size=2 color=#CC0000 style=\"font-size:13px;\"><b>\340 partir de</b><br>\r\n<div style=\"border:solid 2px #CC0000;width:100px;background-color:#FFCC00;\"><b>415 \200</b></div>\r\n</center>\r\n</div>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td align=center><font face=arial,helvetica size=1 color=#FFFFFF style=\"font-size:11px;\">publicit\351</a></font></td>\r\n</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_BonPlan --> \t</td>\r\n\t<td width=\"15\"><img src=\"/img/dot.gif\" width=\"15\"></td>\r\n\t<td width=\"50%\" valign=\"top\">\r\n\t<!-- DEBUT MicroAchat MA_MeillPrixAct //-->\r\n<td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=145 height=1><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=18><br>\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<FORM name=\"prix\" action=\"http://www.micro-achat.01net.com/guide-produits/recherche.php\" method=\"post\">\r\n\t\t<td width=145 colspan=3><img src=\"http://www.01net.com/img/ban/Ban_v4_MeillPrix_MA.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=1 bgcolor=#FFCC00><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t<td width=143>\r\n\t\t<table width=143 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=6><img src=\"http://www.01net.com/img/dot.gif\" width=6 height=1></td>\r\n\t\t\t\t<td valign=top><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=15><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"http://www.01net.com/img/ban/Ban_MA_trouv_ordi.gif\"><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/desktops/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Desktops</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/portables/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Portables</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Mini-PC</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/pda---tablets-pc/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Pda / Tablets-PC</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/apple/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Apple</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/gps/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">GPS</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20><br>\r\n\t\t\t\t\t\t\t\t<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><input type=\"text\" name=\"recherchedirecte\" size=\"14\" style=\"width:130px;font:12px;\" value=\" recherche directe\" onFocus=\"javascript:document.prix.recherchedirecte.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"/img/v4/MA/ok_bloc_recher_MA.gif\" border=\"0\"></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td width=1 bgcolor=#FFCC00><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=145 colspan=3><img src=\"http://www.01net.com/img/v4/MA/base_meillPrix.gif\"></td>\r\n\t\t</FORM>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_MeillPrixAct //--> \t</td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n<!-- /MA_BP_MP --> <!-- - ZONE H2 -->\r\n<!-- -ZONE_Hn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_Tn -->\r\n<!-- + ZONE T0 -->\r\n <td valign=\"top\">\r\n<img src=\"http://www.01net.com/img/dot.gif\" height=13><br>\r\n<table border=0 width=320 cellpadding=0 cellspacing=0>\r\n<tr>\r\n<td width=305><img src=\"http://www.01net.com/img/ban/Ban_v4_DernNews_MA.gif\"><br><img src=\"http://www.01net.com/img/v4/MA/v4-tiret-hauts-mha.gif\"></td>\r\n<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n</tr>\r\n<tr>\r\n<td bgcolor=\"#FEF9E0\">\r\n\t<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Portable <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255149.html\" style=\"color:#000000;text-decoration:none;\">Toshiba consacre deux gammes de machines au multim\351dia</a></b><br>\r\n\t<font color=\"#000000\">Equipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Ordinateur <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254686.html\" style=\"color:#000000;text-decoration:none;\">Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme</a></b><br>\r\n\t<font color=\"#000000\">La firme \340 la pomme propose une station de travail \351volutive et relativement abordable.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>PC <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254549.html\" style=\"color:#000000;text-decoration:none;\">Alienware propose deux machines au look \351trange</a></b><br>\r\n\t<font color=\"#000000\">Aurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Portable <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254501.html\" style=\"color:#000000;text-decoration:none;\">Trois nouveaux iBook G4 chez Apple</a></b><br>\r\n\t<font color=\"#000000\">Chez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=10></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-red-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td align=\"right\">\r\n\t\t\t\t<A HREF=\"http://microachat.01net.com/rubrique/4365.html\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 10px;\">> toutes les news</font></a>\r\n\t\t\t</td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n</td> <!-- - ZONE T0 -->\r\n<!-- + ZONE T1 -->\r\n<!-- Ma_derpromo -->\r\n <td valign=\"top\">\r\n<img src=\"/img/dot.gif\" height=13><br>\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td bgcolor=\"#ffffff\"><img src=\"/img/v4/MA/v4-lespromos-mha.gif\"><br><img src=\"/img/v4/MA/v4-tiret-hauts-mha.gif\"></td>\r\n</tr>\r\n</table>\r\n<!-- DEBUT MODELE D\'AFFICHAGE POUR LES n PREMIERS ARTICLES //-->\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255806.html\" class=\"nodeco\"><img src=\"/images/67462.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255806.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>Asus A3N15-C Pro</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>1170 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255688.html\" class=\"nodeco\"><img src=\"/images/67381.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255688.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>Soltek EQ3702A Miroir</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>559 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255513.html\" class=\"nodeco\"><img src=\"/images/67319.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255513.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>IBM ThinkPad R51</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Voici un portable complet et pourtant relativement l\351ger.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>1299 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t\t<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td><img src=\"http://www.01net.com/img/dot.gif\" height=10></td>\r\n</tr>\r\n<tr>\r\n<td background=\"/img/v4/MA/v4-sep-red-mha.gif\"><img src=\"/img/dot.gif\" height=1></td>\r\n</tr>\r\n<tr>\r\n<td align=\"right\" valign=\"top\">\r\n\t\t\t\t<A HREF=\"http://microachat.01net.com/rubrique/4366.html\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 10px;\">> toutes les promos</font></a>\r\n\t\t</td>\r\n</tr>\r\n</table>\r\n</td>\r\n<!-- /Ma_derpromo --> <!-- - ZONE T1 -->\r\n<!-- + ZONE T2 -->\r\n<!-- - ZONE T2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE T3 -->\r\n<!-- DEBUT MicroAchat MA_PubG -->\r\n<td valign=top align=center>\r\n<table border=0 width=320 cellpadding=0 cellspacing=0>\r\n\t<tr>\r\n\t\t<td width=305><img src=\"/img/dot.gif\" width=1 height=12><br><a href=\"http://www.smartadserver.com/call/cliccommand/45590/[timestamp]?\" target=_blank><img src=\"/img/microachat/Bandeau_FX6021.jpg\" border=0></a></td>\r\n\t\t<td><img src=\"/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_PubG --> <!-- - ZONE T3 -->\r\n<!-- + ZONE T4 -->\r\n<!-- DEBUT MicroAchat MA_PubD -->\r\n<td valign=top align=center>\r\n<table border=0 width=305 cellpadding=0 cellspacing=0>\r\n\t<tr>\r\n\t\t<td width=305><img src=\"/img/dot.gif\" width=1 height=12><br><a href=\"http://www.smartadserver.com/call/cliccommand/45591/[timestamp]?\" target=_blank><img src=\"/img/microachat/twc_305x125.jpg\" border=0></a></td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_PubD --> <!-- - ZONE T4 -->\r\n<!-- + ZONE T5 -->\r\n<!-- - ZONE T5 -->\r\n<!-- -ZONE_Tn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n\t\t\t<td valign=top>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n<!-- +ZONE_gn -->\r\n<!-- + ZONE g0 -->\r\n<!-- - ZONE g0 -->\r\n<!-- + ZONE g1 -->\r\n<!-- - ZONE g1 -->\r\n<!-- + ZONE g2 -->\r\n<!-- - ZONE g2 -->\r\n<!-- + ZONE g3 -->\r\n<!-- - ZONE g3 -->\r\n<!-- + ZONE g4 -->\r\n<!-- - ZONE g4 -->\r\n<!-- + ZONE g5 -->\r\n<!-- - ZONE g5 -->\r\n<!-- + ZONE g6 -->\r\n<!-- - ZONE g6 -->\r\n<!-- + ZONE g7 -->\r\n<!-- - ZONE g7 -->\r\n<!-- + ZONE g8 -->\r\n<!-- - ZONE g8 -->\r\n<!-- + ZONE g9 -->\r\n<!-- - ZONE g9 -->\r\n<!-- -ZONE_gn -->\r\n\t\t\t</table>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t\t\t<tr>\r\n<!-- +ZONE_Mn -->\r\n<!-- + ZONE M0 -->\r\n<!-- modele Ma_GuideAch //-->\r\n <td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" height=13><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t<tr>\r\n\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_GuideAchat_MA.gif\" vspace=1></td>\r\n\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<div style=\"border:solid 1px #FFCC00;width:100%\">\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<center>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"http://microachat.01net.com/article/254561.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67088.jpg.res_121-111.jpg\" border=0 hspace=0 vspace=0></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n</center>\r\n<div style=\"padding:5px;\">\r\n<a href=\"http://microachat.01net.com/article/254561.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\"><b>Les graveurs de DVD</b><br></font></a>\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">Quel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.</font></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n</td> <!-- - ZONE M0 -->\r\n<!-- + ZONE M1 -->\r\n<!-- modele Ma_DirectLab //-->\r\n <td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t<tr>\r\n\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_DirectLab_MA.gif\" vspace=1></td>\r\n\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<div style=\"border:solid 1px #FFCC00;width:100%\">\r\n\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255744.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>Kodak EasyShare Printer Dock Plus :</b>\r\n\t\t\t\t\t\tvos photos 10 x 15 cm en 60 secondes</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255780.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>3DMark05 :</b>\r\n\t\t\t\t\t\tun labo 3D \340 domicile</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255691.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>DVDInfoPro 2.6</b>\r\n\t\t\t\t\t\treconna\356t CD et DVD</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255722.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>Scaleo PA D3008, de Fujitsu-Siemens :</b>\r\n\t\t\t\t\t\tune impression d\'inachev\351</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255514.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">Carbon 5 Go : 2 500 chansons dans le creux de la main</font></a></div>\r\n\t\t\t</div></td>\r\n\t</tr>\r\n</table>\r\n</td> <!-- - ZONE M1 -->\r\n<!-- + ZONE M2 -->\r\n<!-- DEBUT MicroAchat MA_AnnTelec -->\r\n<td valign=top>\r\n<script type=\"text/javascript\">\r\nfunction regionChange()\r\n{\r\ndocument.selection.departement.options.length=0;\r\nswitch(document.selection.region.value)\r\n\t{\r\n\t\tcase \"aucun\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Nord-Pas-de-Calais\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pas-de-Calais\", \"Pas-de-Calais\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Nord\", \"Nord\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Haute-Normandie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Eure\", \"Eure\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-Maritime\", \"Seine-Maritime\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Basse-Normandie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Manche\", \"Manche\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Calvados\", \"Calvados\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Orne\", \"Orne\");\r\n\t\tbreak;\r\n\t\tcase \"Picardie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Somme\", \"Somme\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Oise\", \"Oise\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aisne\", \"Aisne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Bretagne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Finistere\", \"Finistere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cotes-dArmor\", \"Cotes-dArmor\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Morbihan\", \"Morbihan\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ille-et-Vilaine\", \"Ille-et-Vilaine\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Pays-de-Loire\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loire-Atlantique\", \"Loire-Atlantique\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vendee\", \"Vendee\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Maine-et-Loire\", \"Maine-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Mayenne\", \"Mayenne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Sarthe\", \"Sarthe\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Centre\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Eure-et-Loir\", \"Eure-et-Loir\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loiret\", \"Loiret\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loir-et-Cher\", \"Loir-et-Cher\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Indre-et-Loire\", \"Indre-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Indre\", \"Indre\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cher\", \"Cher\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Ile-de-France\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Val-dOise\", \"Val-dOise\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Yvelines\", \"Yvelines\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Essonne\", \"Essonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-et-Marne\", \"Seine-et-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hauts-de-Seine\", \"Hauts-de-Seine\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-Saint-Denis\", \"Seine-Saint-Denis\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Val-de-Marne\", \"Val-de-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Paris\", \"Paris\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Champagnes-Ardennes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ardennes\", \"Ardennes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Marne\", \"Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aube\", \"Aube\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Marne\", \"Haute-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Lorraine\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vosges\", \"Vosges\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Meurthe-et-Moselle\", \"Meurthe-et-Moselle\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Meuse\", \"Meuse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Moselle\", \"Moselle\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Alsace\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Bas-Rhin\", \"Bas-Rhin\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haut-Rhin\", \"Haut-Rhin\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Franche-Compte\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Jura\", \"Jura\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Doubs\", \"Doubs\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Saone\", \"Haute-Saone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Territoire-de-Belfort\", \"Territoire-de-Belfort\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Bourgogne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Yonne\", \"Yonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Nievre\", \"Nievre\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cote-dOr\", \"Cote-dOr\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Saone-et-Loire\", \"Saone-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Poitou-Charentes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Deux-Sevres\", \"Deux-Sevres\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Charente-Maritime\", \"Charente-Maritime\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Charente\", \"Charente\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vienne\", \"Vienne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Limousin\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Vienne\", \"Haute-Vienne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Correze\", \"Correze\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Creuse\", \"Creuse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Auvergne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Allier\", \"Allier\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Puy-de-Dome\", \"Puy-de-Dome\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cantal\", \"Cantal\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Loire\", \"Haute-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Rhone-Alpes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loire\", \"Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Rhone\", \"Rhone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ain\", \"Ain\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ardeche\", \"Ardeche\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Drome\", \"Drome\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Isere\", \"Isere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Savoie\", \"Savoie\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Savoie\", \"Haute-Savoie\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Aquitaine\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gironde\", \"Gironde\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Landes\", \"Landes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pyrenees-Atlantiques\", \"Pyrenees-Atlantiques\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lot-et-Garonne\", \"Lot-et-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Dordogne\", \"Dordogne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Midi-Pyrenees\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lot\", \"Lot\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Tarn-et-Garonne\", \"Tarn-et-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gers\", \"Gers\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hautes-Pyrenees\", \"Hautes-Pyrenees\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Garonne\", \"Haute-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ariege\", \"Ariege\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Tarn\", \"Tarn\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aveyron\", \"Aveyron\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Languedoc-Roussillon\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pyrenees-Orientales\", \"Pyrenees-Orientales\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aude\", \"Aude\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Herault\", \"Herault\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gard\", \"Gard\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lozere\", \"Lozere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Provence-Alpes-Cote-dazur\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Bouches-du-Rhone\", \"Bouches-du-Rhone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vaucluse\", \"Vaucluse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Alpes-de-haute-Provence\", \"Alpes-de-haute-Provence\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hautes-Alpes\", \"Hautes-Alpes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Var\", \"Var\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Alpes-Maritimes\", \"Alpes-Maritimes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Corse\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Corse-du-Sud\", \"Corse-du-Sud\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Corse\", \"Haute-Corse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"DomTom\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Guadeloupe\", \"Guadeloupe\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Guyane\", \"Guyane\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"La-Reunion\", \"La-Reunion\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Martinique\", \"Martinique\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Mayotte\", \"Mayotte\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"St-Pierre-et-Miquelon\", \"St-Pierre-et-Miquelon\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t}\r\n}\r\nfunction deptChange()\r\n{\r\nif (document.selection.departement.value == \'Paris\')\r\n\tdocument.getElementById(\'arrondissement\').style.display = \'inline\';\r\nelse\r\n\tdocument.getElementById(\'arrondissement\').style.display = \'none\';\r\n}\r\n</script>\r\n<table width=305 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td valign=top>\r\n\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_AnnuaiRev_MA.gif\" vspace=1></td>\r\n\t\t\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr><form action=\"http://micro-achat.01net.com/annuaire/recherche.php\" method=\"post\" name=\"selection\">\r\n\t\t\t\t<td bgcolor=#FFFFDD>\r\n\t\t\t\t<div style=\"border:solid 1px #FFCC00;width:100%\"><div style=\"padding:2px;\"><img src=\"http://www.01net.com/img/v4/MA/carte_revend.gif\"><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Choisir une r\351gion</b><br></font>\r\n<select name=\"region\" onChange=\"regionChange()\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"aucun\">-------------</option>\r\n<option value=\"Nord-Pas-de-Calais\">Nord-Pas-de-Calais</option>\r\n<option value=\"Haute-Normandie\">Haute-Normandie</option>\r\n<option value=\"Basse-Normandie\">Basse-Normandie</option>\r\n<option value=\"Picardie\">Picardie</option>\r\n<option value=\"Bretagne\">Bretagne</option>\r\n<option value=\"Pays-de-Loire\">Pays-de-Loire</option>\r\n<option value=\"Centre\">Centre</option>\r\n<option value=\"Ile-de-France\">Ile-de-France</option>\r\n<option value=\"Champagnes-Ardennes\">Champagne ardennes</option>\r\n<option value=\"Lorraine\">Lorraine</option>\r\n<option value=\"Alsace\">Alsace</option>\r\n<option value=\"Franche-Compte\">Franche-Compte</option>\r\n<option value=\"Bourgogne\">Bourgogne</option>\r\n<option value=\"Poitou-Charentes\">Poitou-Charentes</option>\r\n<option value=\"Limousin\">Limousin</option>\r\n<option value=\"Auvergne\">Auvergne</option>\r\n<option value=\"Rhone-Alpes\">Rhone-Alpes</option>\r\n<option value=\"Aquitaine\">Aquitaine</option>\r\n<option value=\"Midi-Pyrenees\">Midi-Pyrenees</option>\r\n<option value=\"Languedoc-Roussillon\">Languedoc roussillon</option>\r\n<option value=\"Provence-Alpes-Cote-dazur\">PACA</option>\r\n<option value=\"Corse\">Corse</option>\r\n<option value=\"DomTom\">DomTom</option>\r\n</select>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Un d\351partement</b><br></font>\r\n<select name=\"departement\" onChange=\"deptChange()\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"aucun\">-------------</option>\r\n</select>\r\n<div id=\"arrondissement\" style=\"display : none;\">\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Un arrondissement</b><br></font>\r\n<select name=\"arrondissement\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"0\">-------------</option>\r\n<option value=\"1\">I</option>\r\n<option value=\"2\">II</option>\r\n<option value=\"3\">III</option>\r\n<option value=\"4\">IV</option>\r\n<option value=\"5\">V</option>\r\n<option value=\"6\">VI</option>\r\n<option value=\"7\">VII</option>\r\n<option value=\"8\">VIII</option>\r\n<option value=\"9\">IX</option>\r\n<option value=\"10\">X</option>\r\n<option value=\"11\">XI</option>\r\n<option value=\"12\">XII</option>\r\n<option value=\"13\">XIII</option>\r\n<option value=\"14\">XIV</option>\r\n<option value=\"15\">XV</option>\r\n<option value=\"16\">XVI</option>\r\n<option value=\"17\">XVII</option>\r\n<option value=\"18\">XVIII</option>\r\n<option value=\"19\">XIX</option>\r\n<option value=\"20\">XX</option>\r\n</select>\r\n</div>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=10><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Recherche directe</b><br></font>\r\n\t\t\t\t<font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\"><img src=\"http://www.01net.com/img/dot.gif\" width=8 height=1>rechercher une ville<br><img src=\"http://www.01net.com/img/dot.gif\" width=8 height=1>et/ou une boutique<br></font>\r\n\t\t\t\t<input type=\"text\" name=\"recherchedirecte\" size=\"14\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;width:130px;\" value=\"\" onFocus=\"javascript:document.selection.recherchedirecte.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=3><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1> <input type=\"image\" src=\"http://www.01net.com/img/v4/MA/ok_bloc_recher_MA.gif\" border=\"0\">\r\n\t\t\t\t<table height=23 width=135 cellspacing=0 cellpadding=0 border=0 bgcolor=#FFEE77>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td bgcolor=#FFEE77 valign=middle align=center><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://micro-achat.01net.com/annuaire/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Recherche avanc\351e</b></font></a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t</td>\r\n\t\t\t</tr></form>\r\n\t\t</table>\r\n\t\t</td>\r\n<!-- DEBUT MicroAchat MA_Telecharg //-->\r\n<td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n<table width=\"145\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/v4/MA/Ban_v4_MA_telec.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<table width=\"145\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#DFECF6\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td rowspan=\"17\"><img src=\"http://www.01net.com/img/dot.gif\" width=\"6\"></td>\r\n\t\t\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"></td>\r\n\t\t\t\t<td rowspan=\"17\"><img src=\"http://www.01net.com/img/dot.gif\" width=\"6\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Bureautique\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Bureautique</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Traducteur, organiseur...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Multimedia\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Multim\351dia</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Photo, audio, vid\351o...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Utilitaire\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Utilitaires</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Antivirus, pilotes, gravure...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Personnaliser\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Personnaliser son PC</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Ecrans de veille, th\350mes...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Programmation\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>D\351veloppement</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Cr\351ation de logiciels, BDD...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Jeux\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Jeux</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Action, simulation...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Internet\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Internet</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Utilitaires, email, FTP...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Loisirs\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Loisirs</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Humour, culture...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_Telecharg //--> \t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_AnnTelec --> <!-- - ZONE M2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE M3 -->\r\n<!-- - ZONE M3 -->\r\n<!-- + ZONE M4 -->\r\n<!-- - ZONE M4 -->\r\n<!-- + ZONE M5 -->\r\n<!-- - ZONE M5 -->\r\n<!-- -ZONE_Mn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t<tr>\r\n<!-- +ZONE_tn -->\r\n<!-- + ZONE t0 -->\r\n<!-- - ZONE t0 -->\r\n<!-- + ZONE t1 -->\r\n<!-- - ZONE t1 -->\r\n<!-- + ZONE t2 -->\r\n<!-- - ZONE t2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE t3 -->\r\n<!-- - ZONE t3 -->\r\n<!-- + ZONE t4 -->\r\n<!-- - ZONE t4 -->\r\n<!-- + ZONE t5 -->\r\n<!-- - ZONE t5 -->\r\n<!-- -ZONE_tn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td valign=top>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t<tr>\r\n<!-- +ZONE_dn -->\r\n<!-- + ZONE d0 -->\r\n<!-- - ZONE d0 -->\r\n<!-- + ZONE d1 -->\r\n<!-- - ZONE d1 -->\r\n<!-- + ZONE d2 -->\r\n<!-- - ZONE d2 -->\r\n<!-- + ZONE d3 -->\r\n<!-- - ZONE d3 -->\r\n<!-- + ZONE d4 -->\r\n<!-- - ZONE d4 -->\r\n<!-- + ZONE d5 -->\r\n<!-- - ZONE d5 -->\r\n<!-- + ZONE d6 -->\r\n<!-- - ZONE d6 -->\r\n<!-- + ZONE d7 -->\r\n<!-- - ZONE d7 -->\r\n<!-- + ZONE d8 -->\r\n<!-- - ZONE d8 -->\r\n<!-- + ZONE d9 -->\r\n<!-- - ZONE d9 -->\r\n<!-- -ZONE_dn -->\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t\t</table>\r\n<!-- FIN WORK -->\r\n\t\t</td>\r\n<!-- *********************************************************************FIN VENTRE********************************************************************************************************************************************** //-->\r\n\t\t<td rowspan=2 valign=top width=23 background=\"http://www.01net.com/img/v4/sep_verticale.gif\"><img src=\"http://www.01net.com/img/dot.gif\" width=23 height=1><br></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t\t<td colspan=2>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=100%>\r\n<!-- +ZONE_Bn -->\r\n<!-- + ZONE B0 -->\r\n<!-- - ZONE B0 -->\r\n<!-- + ZONE B1 -->\r\n<tr><!-- ********** DEBUT BLOC Home NosJournauxV4 //-->\r\n<td valign=top bgcolor=#FFFFFF>\r\n<img src=\"http://www.01net.com/img/ban/Ban_v4_jx.gif\"><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=15><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1>\r\n<a href=\"http://www.01net.com/rubrique/3339.html\"><img src=\"http://www.01net.com/img/journaux/01I-small.gif\" border=0 vspace=0 hspace=12 align=top></a>\r\n<a href=\"http://www.01net.com/rubrique/4051.html\"><img src=\"http://www.01net.com/img/journaux/DSI-small.gif\" border=0 vspace=0 hspace=12 align=top></a>\r\n<a href=\"http://www.01net.com/rubrique/3345.html\"><img src=\"http://www.01net.com/img/journaux/DIN-small.gif
\ No newline at end of file diff --git a/snappy-1.1.0/testdata/html_x_4 b/snappy-1.1.0/testdata/html_x_4 new file mode 100644 index 0000000..3fe87dc --- /dev/null +++ b/snappy-1.1.0/testdata/html_x_4 @@ -0,0 +1 @@ + content: @ 1099872000000000: 'HTTP/1.1 200 OK\r\nX-Google-Crawl-Date: Mon, 08 Nov 2004 17:22:09 GMT\r\nContent-Type: text/html\r\nConnection: close\r\nX-Powered-By: PHP/4.3.8\r\nServer: Apache/1.3.31 (Unix) mod_gzip/1.3.19.1a PHP/4.3.8\r\nDate: Mon, 08 Nov 2004 17:19:07 GMT\r\n\r\n <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n<BASE target=\"_top\">\r\n\n<TITLE>Micro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux</TITLE>\r\n<META NAME=\"Description\" CONTENT=\"Micro Achat : Ordinateurs, PDA\">\r\n<META NAME=\"Keywords\" CONTENT=\"Micro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\">\r\n<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://www.01net.com/styles/01net.css\">\r\n<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://www.01net.com/styles/tableau_autre.css\">\r\n<STYLE type=text/css>\r\nA{TEXT-DECORATION: none;color:#000000;}\r\nA:visited{TEXT-DECORATION: none;color:#000000;}\r\n</STYLE>\r\n<SCRIPT LANGUAGE=\"JavaScript1.1\">\r\nvar sameAsBigDay = new Date();\r\nvar ord = (sameAsBigDay.getTime());\r\nvar pubsMotsCles = \"\";\r\nvar exc;\r\nvar lienhautdepage = \"\";\r\nvar etatmessage = false;\r\nvar enchainement = false;\r\nsas_tmstp=Math.round(Math.random()*10000000000);\r\nfunction SmartAdServer(sas_pageid,sas_formatid,sas_master,sas_target) {\r\n if ((sas_master!=\'M\')&&(sas_master!=\'S\')) {sas_master=\'S\'};\r\n document.write(\'<SCR\'+\'IPT SRC=\"http://www.smartadserver.com/call/pubj/\' + sas_pageid + \'/\' + sas_formatid + \'/\'+sas_master + \'/\' + sas_tmstp + \'/\' + escape(sas_target) + \'?\"></SCR\'+\'IPT>\');\r\n}\r\n</SCRIPT>\r\n<SCRIPT LANGUAGE=\"JAVASCRIPT\" SRC=\"http://www.01net.com/js/exc.js\"></SCRIPT>\r\n<script language=\"javascript\" src=\"http://telecharger.01net.com/shopping/js/headservicesV4.js\"></script>\r\n<noscript>\r\n<a href=\"http://cinema.01net.com\">T\351l\351charger des bandes-annonces, des teasers, des extraits et des making of de vos films cin\351ma pr\351f\351r\351s</a>,\r\n<a href=\"http://www.01net.com/BusinessTechnologies/\">Portail leader de l\'information sur les nouvelles technologies - Actualites et enquetes sur l\'informatique et les NTIC (nouvelles technologies de l\'information et la communication). Exemples de sujets : e-business, telecoms, CRM, VPN, 3G, DSL, fournisseurs d\'acces, Linux, piratage, securite informatique, progiciel...</a><br>\r\n<a href=\"http://www.01net.com/securite_informatique.html\">s\351curit\351 informatique</a>,\r\n<a href=\"http://www.01net.com/strategies_ntic.html\">strat\351gies NTIC</a>,\r\n<a href=\"http://www.01net.com/piratage_informatique.html\">piratage informatique</a>,\r\n<a href=\"http://www.01net.com/technologie_dsl.html\">technologie DSL</a>,\r\n<a href=\"http://www.01net.com/solutions_vpn.html\">solutions VPN</a>,\r\n<a href=\"http://www.01net.com/strategie_e-business.html\">strat\351gies</a>,\r\n<a href=\"http://www.01net.com/outils_crm.html\">outils CRM</a>,\r\n<a href=\"http://www.01net.com/logiciel_linux.html\">logiciel Linux</a>,\r\n<a href=\"http://www.01net.com/fournisseur_d_acces.html\">fournisseur d\'acc\350s</a>,\r\n<a href=\"http://www.01net.com/progiciel.html\">progiciel</a>,\r\n<a href=\"http://www.01net.com/stockage_de_donnees.html\">stockage de donn\351es</a>,\r\n<a href=\"http://www.01net.com/etudes_solution_informatique.html\">\351tudes solution informatique</a>,\r\n<a href=\"http://www.01net.com/NTIC.html\">NTIC</a>,\r\n<a href=\"http://www.01net.com/actualite_technologie.html\">actualit\351 technologie</a>,\r\n<a href=\"http://www.01net.com/etude_materiel_informatique.html\">\351tude mat\351riel informatique</a>,\r\n<a href=\"http://www.01net.com/actus/\">actualit\351s des nouvelles technologies</a>,\r\n<a href=\"http://www.01net.com/MicroPerso/\">enqu\352tes et trucs et astuces sur le mat\351riel informatique, les logiciels, les fournisseurs d\'acc\350s...</a>,\r\n<a href=\"http://www.01net.com/emploi/\">emploi et formations informatiques : offres d\'emploi informatique...</a>,\r\n<a href=\"http://www.01net.com/produits/\">fiches, tests mat\351riels et logiciels en informatique</a>,\r\n<a href=\"http://www.01net.com/01informatique\">01 Informatique</a>,\r\n<a href=\"http://www.caractere.net\">Caract\350re, le site des professionnels de l\'imprim\351 - communication imprim\351e, \351dition, emballage, encres, finition, flexographie, h\351liogravure, impression, imprimerie, imprimeur, industries graphiques, num\351rique, offset, papier, pr\351presse, presse, print, reprographie, s\351rigraphie, typographie</a>,\r\n<a href=\"http://www.01net.com/decisionmicro\">Decision Micro</a>,\r\n<a href=\"http://www.01net.com/decisioninformatique\">D\351cision Informatique</a>,\r\n<a href=\"http://www.01net.com/01reseaux\">01 R\351seaux</a>,\r\n<a href=\"http://logiciel.telecharger.01net.com/\">logiciel</a>,\r\n<a href=\"http://developpeur.telecharger.01net.com/windows/Programmation/\">d\351veloppeur programmation</a>,\r\n<a href=\"http://anti-virus.telecharger.01net.com\">anti-virus</a>,\r\n<a href=\"http://gravure-cd-dvd.telecharger.01net.com/windows/Utilitaire/gravure/\">gravure cd dvd</a>,\r\n<a href=\"http://codec.telecharger.01net.com/windows/Multimedia/encodeurs_et_decodeurs/\">codec encodeur d\351codeur</a>,\r\n<a href=\"http://software.telecharger.01net.com/\">software</a>,\r\n<a href=\"http://logiciels.telecharger.01net.com/\">logiciels</a>,\r\n<a href=\"http://gratuit.telecharger.01net.com/\">gratuit</a>,\r\n<a href=\"http://p2p.telecharger.01net.com/windows/Internet/partage/\">p2p peer to peer partage de fichiers</a>,\r\n<a href=\"http://securite.telecharger.01net.com/windows/Utilitaire/cryptage_et_securite/\">s\351curit\351</a>,\r\n<a href=\"http://compression-decompression.telecharger.01net.com/windows/Utilitaire/compression_et_decompression/\">compression et d\351compression</a>,\r\n<a href=\"http://divx.telecharger.01net.com/\">divx</a>,\r\n<a href=\"http://utilitaire.telecharger.01net.com/windows/Utilitaire/\">utilitaire</a>,\r\n<a href=\"http://jeux.telecharger.01net.com/windows/Jeux/\">jeux</a>,\r\n<a href=\"http://loisirs.telecharger.01net.com/windows/Loisirs/\">loisirs</a>,\r\n<a href=\"http://mac.telecharger.01net.com/mac/\">mac</a>,\r\n<a href=\"http://linux.telecharger.01net.com/linux/\">linux</a>,\r\n<a href=\"http://shareware.telecharger.01net.com/\">shareware</a>,\r\n<a href=\"http://video-dvd.telecharger.01net.com/windows/Multimedia/lecteurs_video_dvd/\">vid\351o dvd</a>,\r\n<a href=\"http://multimedia.telecharger.01net.com/\">multim\351dia</a>,\r\n<a href=\"http://traduction.telecharger.01net.com/windows/Bureautique/traducteur/\">traduction</a>,\r\n<a href=\"http://mp3.telecharger.01net.com/windows/Multimedia/lecteurs_audio_mp3_cd/\">mp3</a>,\r\n<a href=\"http://tchat.telecharger.01net.com/windows/Internet/communication/\">tchat</a>\r\n<a href=\"http://chat.telecharger.01net.com/windows/Internet/communication/\">chat</a>,\r\n<a href=\"http://musique.telecharger.01net.com/\">musique</a>,\r\n<a href=\"http://mobile.telecharger.01net.com/mobile/\">mobile</a>,\r\n<a href=\"http://telephone_portable.telecharger.01net.com/mobile/\">t\351l\351phone portable</a>,\r\n<a href=\"http://telephone_mobile.telecharger.01net.com/mobile/\">t\351l\351phone mobile</a>\r\n</noscript>\r\n</head>\r\n</head>\r\n<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#000000\" marginwidth=0 marginheight=0 topmargin=0 leftmargin=0>\r\n<!-- + ZONE TETE -->\r\n<!-- ********** DEBUT MODELE INTERNE TETES MHA-tetev4 //-->\r\n<table width=100% height=66 cellspacing=0 cellpadding=0 border=0 bgcolor=#ffffff>\r\n\t<tr>\r\n\t\t<td height=8 colspan=2><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=8></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td valign=bottom><a href=\"http://microachat.01net.com\"><img src=\"http://www.01net.com/img/v4/logos_tete/tet_gauche-mha.gif\" border=0></a></td>\r\n\t\t<td valign=bottom bgcolor=#FFFFFF bbackground=\"http://www.01net.com/img/v4/tet_droite.gif\" width=100% style=\"background-image:url(/img/v4/tet_droite-mha.gif);background-position:bottom;background-repeat:repeat-x\"><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=66 align=left hspace=0 vspace=0></td>\r\n\t</tr>\r\n</table>\r\n<table width=100% cellspacing=0 cellpadding=0 border=0 bgcolor=#ffffff>\r\n\t<tr>\r\n\t\t<td valign=top background=\"http://www.01net.com/img/v4/fond_date-mha.gif\" height=18 width=500><img src=\"http://www.01net.com/img/dot.gif\" width=500 height=1><br><img src=\"http://www.01net.com/img/dot.gif\" width=19 height=1><font face=\"Arial\" size=1 color=#666666 style=\"font-size: 11px;\"><b>Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004 | 16:45</b></font></td>\r\n\t\t<td width=100% background=\"http://www.01net.com/img/v4/fond_date2-mha.gif\" height=18></td>\r\n\t</tr>\r\n</table>\r\n<!-- ********** FIN MODELE INTERNE TETES MHA-tetev4 //--> <!-- - ZONE TETE -->\r\n<!-- ***************************************************************************************************************************************************************************************************************************** //-->\r\n<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n<!-- DEBUT PARTIE PUB //-->\r\n\t<tr>\r\n<td align=center valign=middle colspan=2 background=\"http://www.01net.com/img/v4/fond_bann.gif\"><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br>\r\n<!-- + ZONE Z0 -->\r\n<SCRIPT LANGUAGE=\"JAVASCRIPT\">\r\nvar fa = \"\";\r\nvar fab = document.URL.toString();\r\nif (fab.indexOf(\"?fa\") != -1 || fab.indexOf(\"&fa\") != -1)\r\n{\r\nfa = \";!category=fai\";\r\n}\r\nvar etatmessage = false;\r\nvar enchainement = false;\r\n</SCRIPT>\r\n<SCRIPT LANGUAGE=\"JavaScript1.1\">\r\nsas_pageid=\'167/3872\';\r\nsas_formatid=95;\t\t\t// Format : Banner/Scope 468x60\r\nsas_master=\'M\';\t\t\t// Master : M=master or S=slave\r\nsas_target=exc + \'rubrique\';\t\t\t// Targeting\r\nSmartAdServer(sas_pageid,sas_formatid,sas_master,sas_target);\r\n</SCRIPT>\r\n <!-- - ZONE Z0 --></td>\r\n\t\t<td valign=top width=23 background=\"http://www.01net.com/img/v4/sep_verticale.gif\" ><img src=\"http://www.01net.com/img/dot.gif\" width=23 height=1><br></td>\r\n<td valign=top width=100% bgcolor=\"ffffff\" rowspan=3><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=125><br>\r\n<!-- +ZONE_Dn -->\r\n<!-- + ZONE D0 -->\r\n<!-- DEBUT MA_ColD -->\r\n<div style=\"background-color : #ffffff; width : 150px; padding-left : 5px; padding-right : 5px; font-family : Arial, Helvetica;\">\n\t\t\t\t\t<table style=\"border-spacing : 0; width : 146px; margin-top : 0px;\" cellspacing=\"0\">\n\t\t\t\t\t<tr><th colspan=\"2\" style=\"padding : 0;\"><img src=\"http://micro-achat.01net.com/img/utils/micro-achat/tete-produitsrecherches.gif\" alt=\"\" /></th></tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Imagerie </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/12537-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/imagerie/moniteurs-lcd/l1720b/\">LG L1720B</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">332.89 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Ordinateurs </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/4043-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/desktops/veriton-7600g/\">Acer Veriton 7600G</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">705 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Ordinateurs </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/1903-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/sn95g5/\">Shuttle SN95G5</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">375 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Composants </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/1259-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/composants/cartes-meres/a7n8x-e-deluxe/\">Asus A7N8X-E Deluxe</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">91.99 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Composants </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/4687-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/composants/ventilateur/sp-94/\">Thermalright SP-94</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">49 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr></table>\n\t\t\t\t<table style=\"border-spacing : 0px 1px; width : 146px; margin-top : 15px;\" cellspacing=\"0\">\n\t\t\t\t<tr><th colspan=\"2\" style=\"padding : 0;\"><img src=\"http://micro-achat.01net.com/img/utils/micro-achat/tete-revendeurmisajour.gif\" alt=\"\" /></th></tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">1 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Rhone-Alpes/Ain/pc-look\" style=\"color : #000000; text-decoration : none;\">PC Look</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">2 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Nord-Pas-de-Calais/Pas-de-Calais/atelier-informatique\" style=\"color : #000000; text-decoration : none;\">Atelier Informatique</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">3 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Val-de-Marne/zanax-multimedia\" style=\"color : #000000; text-decoration : none;\">Zanax Multim\351dia</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">4 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Hauts-de-Seine/misteroops\" style=\"color : #000000; text-decoration : none;\">MISTEROOPS</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">5 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/12/168-golden-avenue\" style=\"color : #000000; text-decoration : none;\">168 Golden Avenue</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">6 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Seine-Saint-Denis/microchoix\" style=\"color : #000000; text-decoration : none;\">microchoix</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">7 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/12/e-soph\" style=\"color : #000000; text-decoration : none;\">e-Soph</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">8 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/13/pc-price-club\" style=\"color : #000000; text-decoration : none;\">PC Price Club</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">9 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Seine-et-Marne/pc-77\" style=\"color : #000000; text-decoration : none;\">PC 77</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">10 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Alsace/Bas-Rhin/web-in-informatique\" style=\"color : #000000; text-decoration : none;\">Web In Informatique</a></td>\n\t\t\t\t</tr></table>\n\t\t\t\t</div>\n\t\t\t\t<br>\r\n<!-- FIN MA_ColD --> <!-- - ZONE D0 -->\r\n<!-- + ZONE D1 -->\r\n<!-- - ZONE D1 -->\r\n<!-- + ZONE D2 -->\r\n<!-- - ZONE D2 -->\r\n<!-- -ZONE_Dn -->\r\n</td>\r\n\t</tr>\r\n<!-- FIN PARTIE PUB //-->\r\n\t<tr>\r\n\t\t<td valign=top width=193 height=100% background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n\t\t<!-- contenu colonne de gauche //-->\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0 background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n<!-- +ZONE_Gn -->\r\n<!-- + ZONE G0 -->\r\n<tr><!-- ********** DEBUT MHA_MenusChainesV4 //-->\r\n<td valign=top>\n<table border=0 cellpadding=0 cellspacing=0 width=193 bgcolor=#FFFFFF>\n<tr>\n<td background=\"/img/v4/menus/motifgauche_menus.gif\" width=20 rowspan=2><img src=\"/img/dot.gif\" width=20 height=20></td>\n<td width=173 colspan=2 bgcolor=#FFFFFF><img src=\"/img/dot.gif\" width=173 height=20></td>\n</tr>\n<tr>\n<td valign=top width=159>\n\n<a href=\"http://www.01net.com\"><img src=\"/img/v4/menus/mha/home01net-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com\"><img src=\"/img/v4/menus/mha/home-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4317.html\"><img src=\"/img/v4/menus/mha/ordinateurs-2.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4318.html\"><img src=\"/img/v4/menus/mha/composants-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4319.html\"><img src=\"/img/v4/menus/mha/stockage-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4320.html\"><img src=\"/img/v4/menus/mha/image-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4321.html\"><img src=\"/img/v4/menus/mha/peripheriques-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4322.html\"><img src=\"/img/v4/menus/mha/reseaux-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4323.html\"><img src=\"/img/v4/menus/mha/accessoires-1.gif\" width=159 border=0></a><br>\n<a href=\"http://micro-achat.01net.com/guide-produits/\"><img src=\"/img/v4/menus/mha/comparateur-1.gif\" width=159 border=0></a><br>\n<a href=\"http://micro-achat.01net.com/annuaire/\"><img src=\"/img/v4/menus/mha/annuaire-1.gif\" width=159 border=0></a><br></td>\n<td width=14><img src=\"/img/dot.gif\" width=14 height=14></td>\n</tr>\n<tr>\n<td colspan=3><img src=\"/img/v4/menus/bas_menus.gif\" width=193 height=31></td>\n</tr>\n</table></td><!-- ********** FIN MHA_MenusChainesV4 //--> </tr><!-- - ZONE G0 -->\r\n<!-- + ZONE G1 -->\r\n<tr><!-- DEBUT MODELE RUBRIQUE V4ColGaucheMHA //-->\r\n<!-- ********** DEBUT BLOC DernieresNewsTC //-->\r\n<td valign=top>\r\n<!-- DEBUT RECHERCHE MHA -->\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n\t\t\t<td valign=top background=\"http://microachat.01net.com/img/v4/fond_rech_mha.gif\" height=98 style=\"background-repeat:no-repeat;\"><form method=\"get\" name=\"chercher\" action=\"http://www.01net.com/aiguillage_recherche/1,6138,,00.html\"><img src=\"http://microachat.01net.com/img/dot.gif\" width=193 height=17><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><input type=\"text\" name=\"fullText\" style=\"width:130px;font:12px;\"><br><img src=\"http://microachat.01net.com/img/dot.gif\" width=1 height=6><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><select name=\"sousArbo\" style=\"width:130px;font:12px;\">\r\n\t\t\t<option value=\"mha\">dans Micro Achat\r\n\t\t\t<option value=\"cmp\">les prix\r\n\t\t\t<option value=\"ann\">les revendeurs\r\n\t\t\t<option value=\"2641\">tout 01net.\r\n\t\t\t<option value=\"emploi\">les offres d\'emploi\r\n\t\t\t<option value=\"telecharger\"> telecharger.com\r\n\t\t\t<option value=\"web\">le web\r\n\t\t\t</select><br><img src=\"http://microachat.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"http://microachat.01net.com/img/v4/ok_bloc_recher_mha.gif\" border=\"0\"></form>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=10 vspace=0>\r\n<!-- FIN RECHERCHE MHA -->\r\n <!-- modele TCFilColgTitV4 //-->\r\n <table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top>\r\n\t\t<table width=155 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=2><img src=\"http://www.01net.com/img/ban/Ban_v4_DernieresNews01net.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4></td>\r\n\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/256059.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">CD et DVD bient\364t insensibles aux rayures<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/255796.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">OpenOffice gagne son service<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/255731.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">La messagerie en cinq minutes selon Ipswitch<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top colspan=2><A HREF=\"http://www.01net.com/actus/\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\">> toutes les news<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td colspan=2><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/crochet_bleuhaut_155.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20> <!-- ********** FIN BLOC DernieresNewsTC //-->\r\n<!-- ********** DEBUT BLOC NL_MHA //-->\r\n<SCRIPT language=\"javascript\" src=\"http://www.01net.com/js/lib.js\"></SCRIPT>\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<FORM name=\"formgen\" method=\"get\" action=\"http://microachat.01net.com/outils/newsletter_MicroAchat.html\" onSubmit=\"return validateForm(this)\">\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=155 colspan=4><img src=\"http://www.01net.com/img/ban/Ban_V4_Newslett.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=10><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=1 bgcolor=#CC0000><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t<td width=153>\r\n\t\t<table width=153 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=10><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t\t\t<td valign=top><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefinefd_ffffff.gif\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Recevez chaque jour l\'actualit\351 des produits et des promos<br></font>\r\n\t\t\t\t<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><input type=\"text\" name=\"email\" size=\"14\" style=\"width:130px;font:12px;\" value=\"entrez votre e-mail\" onFocus=\"javascript:document.formgen.email.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"http://www.01net.com/img/v4/ok_bloc_recher.gif\" border=\"0\"></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td width=1 bgcolor=#CC0000><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=155 colspan=4><img src=\"http://www.01net.com/img/v4/base_newsletters.gif\"></td>\r\n\t\t</FORM>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20>\r\n<SCRIPT language=\"Javascript\">\r\ndocument.formgen.email.validator= \'notNullEmailPat\';\r\ndocument.formgen.email.nomvalidator= \'E-mail\';\r\n</SCRIPT>\r\n<!-- ********** FIN BLOC NL_MHA //-->\r\n</td>\r\n</tr>\r\n<tr>\r\n<!-- ********** DEBUT BLOC Actus ActusUneV4 //-->\r\n<td valign=top background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n<table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top>\r\n\t\t<table width=155 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/ban/Ban_v4_LaUne.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/entreprise/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Entreprise</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://www.01net.com/article/255737.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">Quand le billet papier s\'envole vers la d\351mat\351rialisation</font></a></td>\r\n\t\t\t\t<td valign=top width=2><img src=\"http://www.01net.com/img/dot.gif\" width=2 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/article/255737.html\"><img src=\"http://www.01net.com/img/MEA_v4/billet_virtuel-65.jpg\" border=0></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/pratique/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Trucs et astuces</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255698.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">D\351pannez Windows XP</font></a></td>\r\n\t\t\t\t<td valign=top width=2><img src=\"http://www.01net.com/img/dot.gif\" width=2 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/article/255698.html\"><img src=\"http://www.01net.com/img/MEA_v4/depannez_XP-65.jpg\" border=0 ></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t</tr>\r\n\t\t <tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top colspan=3><a href=\"http://www.01net.com/conso/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Conso</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255524.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">Vos photos sur papier imprimante ou labo ?<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t<!-- exemple de lien avec pseudorub pour produits et tests -->\r\n\t\t<!-- <a href=\"/outils/PseudoRub.php?base=test-comp&rub=1730&pseudo=test-comp20041005\"> -->\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top colspan=3><a href=\"http://www.01net.com/produits/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Produits & Tests</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255782.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">5 programmes d\222encodage vid\351o gratuits<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20>\r\n</td>\r\n<!-- ********** FIN BLOC Actus ActusUneV4 //--> </tr>\r\n<tr>\r\n<td>\r\n<table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top><a href=\"mailto:s.cohen@micro-achat.fr\"><img border=0 src=\"http://www.01net.com/img/v4/espace-revendeurs.gif\"></td>\r\n\t</tr>\r\n</table>\r\n<br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20></td>\r\n<!-- FIN MODELE RUBRIQUE V4ColGaucheMHA //--> </tr><!-- - ZONE G1 -->\r\n<!-- + ZONE G2 -->\r\n<!-- - ZONE G2 -->\r\n<!-- + ZONE G3 -->\r\n<!-- - ZONE G3 -->\r\n<!-- + ZONE G4 -->\r\n<!-- - ZONE G4 -->\r\n<!-- + ZONE G5 -->\r\n<!-- - ZONE G5 -->\r\n<!-- + ZONE G6 -->\r\n<!-- - ZONE G6 -->\r\n<!-- + ZONE G7 -->\r\n<!-- - ZONE G7 -->\r\n<!-- + ZONE G8 -->\r\n<!-- - ZONE G8 -->\r\n<!-- + ZONE G9 -->\r\n<!-- - ZONE G9 -->\r\n<!-- + ZONE GA -->\r\n<!-- - ZONE GA -->\r\n<!-- + ZONE GB -->\r\n<!-- - ZONE GB -->\r\n<!-- + ZONE GC -->\r\n<!-- - ZONE GC -->\r\n<!-- + ZONE GD -->\r\n<!-- - ZONE GD -->\r\n<!-- + ZONE GE -->\r\n<!-- - ZONE GE -->\r\n<!-- + ZONE GF -->\r\n<!-- - ZONE GF -->\r\n<!-- -ZONE_Gn -->\r\n\t\t</table>\r\n\t\t<!-- fin contenu colonne de gauche //-->\r\n\t\t</td>\r\n<!-- ***************************************************************** DEBUT VENTRE*********************************************************************************************************************************************** //-->\r\n<!-- DEBUT WORK -->\r\n\t\t<td valign=top width=625 bgcolor=#ffffff><img src=\"http://www.01net.com/img/dot.gif\" width=625 height=1><br>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_hn -->\r\n<!-- + ZONE h0 -->\r\n<!-- MA_ban_int -->\r\n<td valign=\"top\">\r\n<img src=\"/img/dot.gif\" height=\"18\"><br>\r\n<!-- pour ordipda -->\r\n<table width=\"625\" cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"/img/v4/MA/Ban_MA_ordis.gif\"></td>\r\n\t</tr>\r\n</table>\r\n\t</td>\r\n<!-- /MA_ban_int --> <!-- - ZONE h0 -->\r\n<!-- + ZONE h1 -->\r\n<!-- - ZONE h1 -->\r\n<!-- + ZONE h2 -->\r\n<!-- - ZONE h2 -->\r\n<!-- -ZONE_hn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_Hn -->\r\n<!-- + ZONE H0 -->\r\n<!-- Ma_int_Leader -->\r\n <td valign=top>\r\n<img src=\"/img/dot.gif\" width=1 height=18><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=320>\r\n<tr>\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<td width=144 valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=143 height=1 vspace=0><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:11px;>Portable</font><br>\r\n<A HREF=\"/article/256198.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=font-size:14px;><b>Un nouvel ultra portable r\351alis\351 par Nec</b></font></a><br>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/256198.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67509.jpg.res_100-100.jpg\" border=0 hspace=0 vspace=0></a><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n<font face=arial,helvetica size=2 color=#000000 style=font-size:12px;><img src=\"/img/v4/flechefine_fondtransp.gif\">Le Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.</font><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:12px;>\340 partir de 1663 \200</font>\r\n</td>\r\n<td width=17 background=\"/img/v4/MA/v4-fond-sep-mea-leader.gif\"><img src=\"/img/dot.gif\" width=17 height=1></td>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<td width=144 valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=143 height=1 vspace=0><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:11px;>Portable</font><br>\r\n<A HREF=\"/article/255194.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=font-size:14px;><b>Asus pr\351sente trois petits nouveaux dans la gamme A3N</b></font></a><br>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255194.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67168.jpg.res_100-100.jpg\" border=0 hspace=0 vspace=0></a><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n<font face=arial,helvetica size=2 color=#000000 style=font-size:12px;><img src=\"/img/v4/flechefine_fondtransp.gif\">Ces trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.</font><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:12px;>\340 partir de 1346 \200</font>\r\n</td>\r\n<td width=15><img src=\"/img/dot.gif\" width=15 height=1></td>\r\n\t\t\t\t</tr>\r\n</table>\r\n</td>\r\n<!-- /Ma_int_Leader --> <!-- - ZONE H0 -->\r\n<!-- + ZONE H1 -->\r\n<!-- - ZONE H1 -->\r\n<!-- + ZONE H2 -->\r\n<!-- MA_BP_MP -->\r\n<td valign=\"top\" width=\"100%\">\r\n\t<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n\t<tr>\r\n\t<td width=\"50%\" valign=\"top\">\r\n\t<!-- DEBUT MicroAchat MA_BonPlan -->\r\n<td valign=top>\r\n<img src=\"/img/dot.gif\" width=1 height=18><br>\r\n<table border=0 cellpadding=1 cellspacing=0 width=145 bgcolor=#CC0000>\r\n<tr>\r\n<td align=center><font face=arial,helvetica size=1 color=#FFFFFF style=\"font-size:11px;\">BON PLAN</a></font></td>\r\n</tr>\r\n<tr>\r\n<td width=145>\r\n<div style=\"padding:5px;padding-left:5px;padding-fight:5px;margin:0px;margin-left:1px;margin-right:1px;background-color:#FFFFFF;\">\r\n<img src=\"/img/microachat/logo_shuttle_SB83G5.gif\" border=0><br>\r\n<font face=arial,helvetica size=2 color=#CC0000 style=\"font-size:12px;\">Les derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.<br></font>\r\n<center><a href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/sb83g5/?fabriquant=1&page=1&tri=titre\"><img src=\"/img/microachat/mea_shuttle_SB83G5.gif\" border=0 vspace=5></a><br></center>\r\n<center>\r\n<font face=arial,helvetica size=2 color=#CC0000 style=\"font-size:13px;\"><b>\340 partir de</b><br>\r\n<div style=\"border:solid 2px #CC0000;width:100px;background-color:#FFCC00;\"><b>415 \200</b></div>\r\n</center>\r\n</div>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td align=center><font face=arial,helvetica size=1 color=#FFFFFF style=\"font-size:11px;\">publicit\351</a></font></td>\r\n</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_BonPlan --> \t</td>\r\n\t<td width=\"15\"><img src=\"/img/dot.gif\" width=\"15\"></td>\r\n\t<td width=\"50%\" valign=\"top\">\r\n\t<!-- DEBUT MicroAchat MA_MeillPrixAct //-->\r\n<td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=145 height=1><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=18><br>\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<FORM name=\"prix\" action=\"http://www.micro-achat.01net.com/guide-produits/recherche.php\" method=\"post\">\r\n\t\t<td width=145 colspan=3><img src=\"http://www.01net.com/img/ban/Ban_v4_MeillPrix_MA.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=1 bgcolor=#FFCC00><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t<td width=143>\r\n\t\t<table width=143 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=6><img src=\"http://www.01net.com/img/dot.gif\" width=6 height=1></td>\r\n\t\t\t\t<td valign=top><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=15><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"http://www.01net.com/img/ban/Ban_MA_trouv_ordi.gif\"><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/desktops/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Desktops</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/portables/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Portables</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Mini-PC</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/pda---tablets-pc/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Pda / Tablets-PC</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/apple/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Apple</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/gps/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">GPS</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20><br>\r\n\t\t\t\t\t\t\t\t<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><input type=\"text\" name=\"recherchedirecte\" size=\"14\" style=\"width:130px;font:12px;\" value=\" recherche directe\" onFocus=\"javascript:document.prix.recherchedirecte.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"/img/v4/MA/ok_bloc_recher_MA.gif\" border=\"0\"></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td width=1 bgcolor=#FFCC00><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=145 colspan=3><img src=\"http://www.01net.com/img/v4/MA/base_meillPrix.gif\"></td>\r\n\t\t</FORM>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_MeillPrixAct //--> \t</td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n<!-- /MA_BP_MP --> <!-- - ZONE H2 -->\r\n<!-- -ZONE_Hn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_Tn -->\r\n<!-- + ZONE T0 -->\r\n <td valign=\"top\">\r\n<img src=\"http://www.01net.com/img/dot.gif\" height=13><br>\r\n<table border=0 width=320 cellpadding=0 cellspacing=0>\r\n<tr>\r\n<td width=305><img src=\"http://www.01net.com/img/ban/Ban_v4_DernNews_MA.gif\"><br><img src=\"http://www.01net.com/img/v4/MA/v4-tiret-hauts-mha.gif\"></td>\r\n<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n</tr>\r\n<tr>\r\n<td bgcolor=\"#FEF9E0\">\r\n\t<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Portable <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255149.html\" style=\"color:#000000;text-decoration:none;\">Toshiba consacre deux gammes de machines au multim\351dia</a></b><br>\r\n\t<font color=\"#000000\">Equipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Ordinateur <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254686.html\" style=\"color:#000000;text-decoration:none;\">Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme</a></b><br>\r\n\t<font color=\"#000000\">La firme \340 la pomme propose une station de travail \351volutive et relativement abordable.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>PC <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254549.html\" style=\"color:#000000;text-decoration:none;\">Alienware propose deux machines au look \351trange</a></b><br>\r\n\t<font color=\"#000000\">Aurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Portable <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254501.html\" style=\"color:#000000;text-decoration:none;\">Trois nouveaux iBook G4 chez Apple</a></b><br>\r\n\t<font color=\"#000000\">Chez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=10></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-red-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td align=\"right\">\r\n\t\t\t\t<A HREF=\"http://microachat.01net.com/rubrique/4365.html\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 10px;\">> toutes les news</font></a>\r\n\t\t\t</td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n</td> <!-- - ZONE T0 -->\r\n<!-- + ZONE T1 -->\r\n<!-- Ma_derpromo -->\r\n <td valign=\"top\">\r\n<img src=\"/img/dot.gif\" height=13><br>\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td bgcolor=\"#ffffff\"><img src=\"/img/v4/MA/v4-lespromos-mha.gif\"><br><img src=\"/img/v4/MA/v4-tiret-hauts-mha.gif\"></td>\r\n</tr>\r\n</table>\r\n<!-- DEBUT MODELE D\'AFFICHAGE POUR LES n PREMIERS ARTICLES //-->\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255806.html\" class=\"nodeco\"><img src=\"/images/67462.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255806.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>Asus A3N15-C Pro</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>1170 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255688.html\" class=\"nodeco\"><img src=\"/images/67381.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255688.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>Soltek EQ3702A Miroir</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>559 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255513.html\" class=\"nodeco\"><img src=\"/images/67319.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255513.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>IBM ThinkPad R51</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Voici un portable complet et pourtant relativement l\351ger.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>1299 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t\t<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td><img src=\"http://www.01net.com/img/dot.gif\" height=10></td>\r\n</tr>\r\n<tr>\r\n<td background=\"/img/v4/MA/v4-sep-red-mha.gif\"><img src=\"/img/dot.gif\" height=1></td>\r\n</tr>\r\n<tr>\r\n<td align=\"right\" valign=\"top\">\r\n\t\t\t\t<A HREF=\"http://microachat.01net.com/rubrique/4366.html\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 10px;\">> toutes les promos</font></a>\r\n\t\t</td>\r\n</tr>\r\n</table>\r\n</td>\r\n<!-- /Ma_derpromo --> <!-- - ZONE T1 -->\r\n<!-- + ZONE T2 -->\r\n<!-- - ZONE T2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE T3 -->\r\n<!-- DEBUT MicroAchat MA_PubG -->\r\n<td valign=top align=center>\r\n<table border=0 width=320 cellpadding=0 cellspacing=0>\r\n\t<tr>\r\n\t\t<td width=305><img src=\"/img/dot.gif\" width=1 height=12><br><a href=\"http://www.smartadserver.com/call/cliccommand/45590/[timestamp]?\" target=_blank><img src=\"/img/microachat/Bandeau_FX6021.jpg\" border=0></a></td>\r\n\t\t<td><img src=\"/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_PubG --> <!-- - ZONE T3 -->\r\n<!-- + ZONE T4 -->\r\n<!-- DEBUT MicroAchat MA_PubD -->\r\n<td valign=top align=center>\r\n<table border=0 width=305 cellpadding=0 cellspacing=0>\r\n\t<tr>\r\n\t\t<td width=305><img src=\"/img/dot.gif\" width=1 height=12><br><a href=\"http://www.smartadserver.com/call/cliccommand/45591/[timestamp]?\" target=_blank><img src=\"/img/microachat/twc_305x125.jpg\" border=0></a></td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_PubD --> <!-- - ZONE T4 -->\r\n<!-- + ZONE T5 -->\r\n<!-- - ZONE T5 -->\r\n<!-- -ZONE_Tn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n\t\t\t<td valign=top>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n<!-- +ZONE_gn -->\r\n<!-- + ZONE g0 -->\r\n<!-- - ZONE g0 -->\r\n<!-- + ZONE g1 -->\r\n<!-- - ZONE g1 -->\r\n<!-- + ZONE g2 -->\r\n<!-- - ZONE g2 -->\r\n<!-- + ZONE g3 -->\r\n<!-- - ZONE g3 -->\r\n<!-- + ZONE g4 -->\r\n<!-- - ZONE g4 -->\r\n<!-- + ZONE g5 -->\r\n<!-- - ZONE g5 -->\r\n<!-- + ZONE g6 -->\r\n<!-- - ZONE g6 -->\r\n<!-- + ZONE g7 -->\r\n<!-- - ZONE g7 -->\r\n<!-- + ZONE g8 -->\r\n<!-- - ZONE g8 -->\r\n<!-- + ZONE g9 -->\r\n<!-- - ZONE g9 -->\r\n<!-- -ZONE_gn -->\r\n\t\t\t</table>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t\t\t<tr>\r\n<!-- +ZONE_Mn -->\r\n<!-- + ZONE M0 -->\r\n<!-- modele Ma_GuideAch //-->\r\n <td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" height=13><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t<tr>\r\n\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_GuideAchat_MA.gif\" vspace=1></td>\r\n\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<div style=\"border:solid 1px #FFCC00;width:100%\">\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<center>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"http://microachat.01net.com/article/254561.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67088.jpg.res_121-111.jpg\" border=0 hspace=0 vspace=0></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n</center>\r\n<div style=\"padding:5px;\">\r\n<a href=\"http://microachat.01net.com/article/254561.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\"><b>Les graveurs de DVD</b><br></font></a>\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">Quel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.</font></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n</td> <!-- - ZONE M0 -->\r\n<!-- + ZONE M1 -->\r\n<!-- modele Ma_DirectLab //-->\r\n <td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t<tr>\r\n\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_DirectLab_MA.gif\" vspace=1></td>\r\n\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<div style=\"border:solid 1px #FFCC00;width:100%\">\r\n\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255744.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>Kodak EasyShare Printer Dock Plus :</b>\r\n\t\t\t\t\t\tvos photos 10 x 15 cm en 60 secondes</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255780.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>3DMark05 :</b>\r\n\t\t\t\t\t\tun labo 3D \340 domicile</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255691.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>DVDInfoPro 2.6</b>\r\n\t\t\t\t\t\treconna\356t CD et DVD</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255722.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>Scaleo PA D3008, de Fujitsu-Siemens :</b>\r\n\t\t\t\t\t\tune impression d\'inachev\351</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255514.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">Carbon 5 Go : 2 500 chansons dans le creux de la main</font></a></div>\r\n\t\t\t</div></td>\r\n\t</tr>\r\n</table>\r\n</td> <!-- - ZONE M1 -->\r\n<!-- + ZONE M2 -->\r\n<!-- DEBUT MicroAchat MA_AnnTelec -->\r\n<td valign=top>\r\n<script type=\"text/javascript\">\r\nfunction regionChange()\r\n{\r\ndocument.selection.departement.options.length=0;\r\nswitch(document.selection.region.value)\r\n\t{\r\n\t\tcase \"aucun\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Nord-Pas-de-Calais\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pas-de-Calais\", \"Pas-de-Calais\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Nord\", \"Nord\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Haute-Normandie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Eure\", \"Eure\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-Maritime\", \"Seine-Maritime\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Basse-Normandie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Manche\", \"Manche\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Calvados\", \"Calvados\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Orne\", \"Orne\");\r\n\t\tbreak;\r\n\t\tcase \"Picardie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Somme\", \"Somme\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Oise\", \"Oise\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aisne\", \"Aisne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Bretagne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Finistere\", \"Finistere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cotes-dArmor\", \"Cotes-dArmor\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Morbihan\", \"Morbihan\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ille-et-Vilaine\", \"Ille-et-Vilaine\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Pays-de-Loire\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loire-Atlantique\", \"Loire-Atlantique\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vendee\", \"Vendee\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Maine-et-Loire\", \"Maine-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Mayenne\", \"Mayenne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Sarthe\", \"Sarthe\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Centre\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Eure-et-Loir\", \"Eure-et-Loir\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loiret\", \"Loiret\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loir-et-Cher\", \"Loir-et-Cher\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Indre-et-Loire\", \"Indre-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Indre\", \"Indre\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cher\", \"Cher\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Ile-de-France\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Val-dOise\", \"Val-dOise\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Yvelines\", \"Yvelines\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Essonne\", \"Essonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-et-Marne\", \"Seine-et-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hauts-de-Seine\", \"Hauts-de-Seine\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-Saint-Denis\", \"Seine-Saint-Denis\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Val-de-Marne\", \"Val-de-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Paris\", \"Paris\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Champagnes-Ardennes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ardennes\", \"Ardennes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Marne\", \"Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aube\", \"Aube\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Marne\", \"Haute-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Lorraine\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vosges\", \"Vosges\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Meurthe-et-Moselle\", \"Meurthe-et-Moselle\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Meuse\", \"Meuse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Moselle\", \"Moselle\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Alsace\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Bas-Rhin\", \"Bas-Rhin\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haut-Rhin\", \"Haut-Rhin\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Franche-Compte\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Jura\", \"Jura\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Doubs\", \"Doubs\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Saone\", \"Haute-Saone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Territoire-de-Belfort\", \"Territoire-de-Belfort\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Bourgogne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Yonne\", \"Yonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Nievre\", \"Nievre\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cote-dOr\", \"Cote-dOr\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Saone-et-Loire\", \"Saone-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Poitou-Charentes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Deux-Sevres\", \"Deux-Sevres\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Charente-Maritime\", \"Charente-Maritime\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Charente\", \"Charente\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vienne\", \"Vienne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Limousin\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Vienne\", \"Haute-Vienne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Correze\", \"Correze\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Creuse\", \"Creuse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Auvergne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Allier\", \"Allier\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Puy-de-Dome\", \"Puy-de-Dome\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cantal\", \"Cantal\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Loire\", \"Haute-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Rhone-Alpes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loire\", \"Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Rhone\", \"Rhone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ain\", \"Ain\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ardeche\", \"Ardeche\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Drome\", \"Drome\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Isere\", \"Isere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Savoie\", \"Savoie\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Savoie\", \"Haute-Savoie\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Aquitaine\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gironde\", \"Gironde\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Landes\", \"Landes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pyrenees-Atlantiques\", \"Pyrenees-Atlantiques\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lot-et-Garonne\", \"Lot-et-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Dordogne\", \"Dordogne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Midi-Pyrenees\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lot\", \"Lot\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Tarn-et-Garonne\", \"Tarn-et-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gers\", \"Gers\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hautes-Pyrenees\", \"Hautes-Pyrenees\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Garonne\", \"Haute-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ariege\", \"Ariege\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Tarn\", \"Tarn\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aveyron\", \"Aveyron\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Languedoc-Roussillon\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pyrenees-Orientales\", \"Pyrenees-Orientales\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aude\", \"Aude\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Herault\", \"Herault\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gard\", \"Gard\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lozere\", \"Lozere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Provence-Alpes-Cote-dazur\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Bouches-du-Rhone\", \"Bouches-du-Rhone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vaucluse\", \"Vaucluse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Alpes-de-haute-Provence\", \"Alpes-de-haute-Provence\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hautes-Alpes\", \"Hautes-Alpes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Var\", \"Var\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Alpes-Maritimes\", \"Alpes-Maritimes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Corse\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Corse-du-Sud\", \"Corse-du-Sud\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Corse\", \"Haute-Corse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"DomTom\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Guadeloupe\", \"Guadeloupe\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Guyane\", \"Guyane\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"La-Reunion\", \"La-Reunion\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Martinique\", \"Martinique\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Mayotte\", \"Mayotte\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"St-Pierre-et-Miquelon\", \"St-Pierre-et-Miquelon\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t}\r\n}\r\nfunction deptChange()\r\n{\r\nif (document.selection.departement.value == \'Paris\')\r\n\tdocument.getElementById(\'arrondissement\').style.display = \'inline\';\r\nelse\r\n\tdocument.getElementById(\'arrondissement\').style.display = \'none\';\r\n}\r\n</script>\r\n<table width=305 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td valign=top>\r\n\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_AnnuaiRev_MA.gif\" vspace=1></td>\r\n\t\t\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr><form action=\"http://micro-achat.01net.com/annuaire/recherche.php\" method=\"post\" name=\"selection\">\r\n\t\t\t\t<td bgcolor=#FFFFDD>\r\n\t\t\t\t<div style=\"border:solid 1px #FFCC00;width:100%\"><div style=\"padding:2px;\"><img src=\"http://www.01net.com/img/v4/MA/carte_revend.gif\"><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Choisir une r\351gion</b><br></font>\r\n<select name=\"region\" onChange=\"regionChange()\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"aucun\">-------------</option>\r\n<option value=\"Nord-Pas-de-Calais\">Nord-Pas-de-Calais</option>\r\n<option value=\"Haute-Normandie\">Haute-Normandie</option>\r\n<option value=\"Basse-Normandie\">Basse-Normandie</option>\r\n<option value=\"Picardie\">Picardie</option>\r\n<option value=\"Bretagne\">Bretagne</option>\r\n<option value=\"Pays-de-Loire\">Pays-de-Loire</option>\r\n<option value=\"Centre\">Centre</option>\r\n<option value=\"Ile-de-France\">Ile-de-France</option>\r\n<option value=\"Champagnes-Ardennes\">Champagne ardennes</option>\r\n<option value=\"Lorraine\">Lorraine</option>\r\n<option value=\"Alsace\">Alsace</option>\r\n<option value=\"Franche-Compte\">Franche-Compte</option>\r\n<option value=\"Bourgogne\">Bourgogne</option>\r\n<option value=\"Poitou-Charentes\">Poitou-Charentes</option>\r\n<option value=\"Limousin\">Limousin</option>\r\n<option value=\"Auvergne\">Auvergne</option>\r\n<option value=\"Rhone-Alpes\">Rhone-Alpes</option>\r\n<option value=\"Aquitaine\">Aquitaine</option>\r\n<option value=\"Midi-Pyrenees\">Midi-Pyrenees</option>\r\n<option value=\"Languedoc-Roussillon\">Languedoc roussillon</option>\r\n<option value=\"Provence-Alpes-Cote-dazur\">PACA</option>\r\n<option value=\"Corse\">Corse</option>\r\n<option value=\"DomTom\">DomTom</option>\r\n</select>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Un d\351partement</b><br></font>\r\n<select name=\"departement\" onChange=\"deptChange()\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"aucun\">-------------</option>\r\n</select>\r\n<div id=\"arrondissement\" style=\"display : none;\">\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Un arrondissement</b><br></font>\r\n<select name=\"arrondissement\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"0\">-------------</option>\r\n<option value=\"1\">I</option>\r\n<option value=\"2\">II</option>\r\n<option value=\"3\">III</option>\r\n<option value=\"4\">IV</option>\r\n<option value=\"5\">V</option>\r\n<option value=\"6\">VI</option>\r\n<option value=\"7\">VII</option>\r\n<option value=\"8\">VIII</option>\r\n<option value=\"9\">IX</option>\r\n<option value=\"10\">X</option>\r\n<option value=\"11\">XI</option>\r\n<option value=\"12\">XII</option>\r\n<option value=\"13\">XIII</option>\r\n<option value=\"14\">XIV</option>\r\n<option value=\"15\">XV</option>\r\n<option value=\"16\">XVI</option>\r\n<option value=\"17\">XVII</option>\r\n<option value=\"18\">XVIII</option>\r\n<option value=\"19\">XIX</option>\r\n<option value=\"20\">XX</option>\r\n</select>\r\n</div>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=10><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Recherche directe</b><br></font>\r\n\t\t\t\t<font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\"><img src=\"http://www.01net.com/img/dot.gif\" width=8 height=1>rechercher une ville<br><img src=\"http://www.01net.com/img/dot.gif\" width=8 height=1>et/ou une boutique<br></font>\r\n\t\t\t\t<input type=\"text\" name=\"recherchedirecte\" size=\"14\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;width:130px;\" value=\"\" onFocus=\"javascript:document.selection.recherchedirecte.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=3><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1> <input type=\"image\" src=\"http://www.01net.com/img/v4/MA/ok_bloc_recher_MA.gif\" border=\"0\">\r\n\t\t\t\t<table height=23 width=135 cellspacing=0 cellpadding=0 border=0 bgcolor=#FFEE77>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td bgcolor=#FFEE77 valign=middle align=center><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://micro-achat.01net.com/annuaire/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Recherche avanc\351e</b></font></a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t</td>\r\n\t\t\t</tr></form>\r\n\t\t</table>\r\n\t\t</td>\r\n<!-- DEBUT MicroAchat MA_Telecharg //-->\r\n<td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n<table width=\"145\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/v4/MA/Ban_v4_MA_telec.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<table width=\"145\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#DFECF6\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td rowspan=\"17\"><img src=\"http://www.01net.com/img/dot.gif\" width=\"6\"></td>\r\n\t\t\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"></td>\r\n\t\t\t\t<td rowspan=\"17\"><img src=\"http://www.01net.com/img/dot.gif\" width=\"6\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Bureautique\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Bureautique</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Traducteur, organiseur...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Multimedia\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Multim\351dia</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Photo, audio, vid\351o...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Utilitaire\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Utilitaires</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Antivirus, pilotes, gravure...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Personnaliser\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Personnaliser son PC</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Ecrans de veille, th\350mes...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Programmation\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>D\351veloppement</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Cr\351ation de logiciels, BDD...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Jeux\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Jeux</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Action, simulation...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Internet\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Internet</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Utilitaires, email, FTP...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Loisirs\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Loisirs</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Humour, culture...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_Telecharg //--> \t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_AnnTelec --> <!-- - ZONE M2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE M3 -->\r\n<!-- - ZONE M3 -->\r\n<!-- + ZONE M4 -->\r\n<!-- - ZONE M4 -->\r\n<!-- + ZONE M5 -->\r\n<!-- - ZONE M5 -->\r\n<!-- -ZONE_Mn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t<tr>\r\n<!-- +ZONE_tn -->\r\n<!-- + ZONE t0 -->\r\n<!-- - ZONE t0 -->\r\n<!-- + ZONE t1 -->\r\n<!-- - ZONE t1 -->\r\n<!-- + ZONE t2 -->\r\n<!-- - ZONE t2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE t3 -->\r\n<!-- - ZONE t3 -->\r\n<!-- + ZONE t4 -->\r\n<!-- - ZONE t4 -->\r\n<!-- + ZONE t5 -->\r\n<!-- - ZONE t5 -->\r\n<!-- -ZONE_tn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td valign=top>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t<tr>\r\n<!-- +ZONE_dn -->\r\n<!-- + ZONE d0 -->\r\n<!-- - ZONE d0 -->\r\n<!-- + ZONE d1 -->\r\n<!-- - ZONE d1 -->\r\n<!-- + ZONE d2 -->\r\n<!-- - ZONE d2 -->\r\n<!-- + ZONE d3 -->\r\n<!-- - ZONE d3 -->\r\n<!-- + ZONE d4 -->\r\n<!-- - ZONE d4 -->\r\n<!-- + ZONE d5 -->\r\n<!-- - ZONE d5 -->\r\n<!-- + ZONE d6 -->\r\n<!-- - ZONE d6 -->\r\n<!-- + ZONE d7 -->\r\n<!-- - ZONE d7 -->\r\n<!-- + ZONE d8 -->\r\n<!-- - ZONE d8 -->\r\n<!-- + ZONE d9 -->\r\n<!-- - ZONE d9 -->\r\n<!-- -ZONE_dn -->\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t\t</table>\r\n<!-- FIN WORK -->\r\n\t\t</td>\r\n<!-- *********************************************************************FIN VENTRE********************************************************************************************************************************************** //-->\r\n\t\t<td rowspan=2 valign=top width=23 background=\"http://www.01net.com/img/v4/sep_verticale.gif\"><img src=\"http://www.01net.com/img/dot.gif\" width=23 height=1><br></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t\t<td colspan=2>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=100%>\r\n<!-- +ZONE_Bn -->\r\n<!-- + ZONE B0 -->\r\n<!-- - ZONE B0 -->\r\n<!-- + ZONE B1 -->\r\n<tr><!-- ********** DEBUT BLOC Home NosJournauxV4 //-->\r\n<td valign=top bgcolor=#FFFFFF>\r\n<img src=\"http://www.01net.com/img/ban/Ban_v4_jx.gif\"><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=15><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1>\r\n<a href=\"http://www.01net.com/rubrique/3339.html\"><img src=\"http://www.01net.com/img/journaux/01I-small.gif\" border=0 vspace=0 hspace=12 align=top></a>\r\n<a href=\"http://www.01net.com/rubrique/4051.html\"><img src=\"http://www.01net.com/img/journaux/DSI-small.gif\" border=0 vspace=0 hspace=12 align=top></a>\r\n<a href=\"http://www.01net.com/rubrique/3345.html\"><img src=\"http://www.01net.com/img/journaux/DIN-small.gif content: @ 1099872000000000: 'HTTP/1.1 200 OK\r\nX-Google-Crawl-Date: Mon, 08 Nov 2004 17:22:09 GMT\r\nContent-Type: text/html\r\nConnection: close\r\nX-Powered-By: PHP/4.3.8\r\nServer: Apache/1.3.31 (Unix) mod_gzip/1.3.19.1a PHP/4.3.8\r\nDate: Mon, 08 Nov 2004 17:19:07 GMT\r\n\r\n <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n<BASE target=\"_top\">\r\n\n<TITLE>Micro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux</TITLE>\r\n<META NAME=\"Description\" CONTENT=\"Micro Achat : Ordinateurs, PDA\">\r\n<META NAME=\"Keywords\" CONTENT=\"Micro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\">\r\n<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://www.01net.com/styles/01net.css\">\r\n<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://www.01net.com/styles/tableau_autre.css\">\r\n<STYLE type=text/css>\r\nA{TEXT-DECORATION: none;color:#000000;}\r\nA:visited{TEXT-DECORATION: none;color:#000000;}\r\n</STYLE>\r\n<SCRIPT LANGUAGE=\"JavaScript1.1\">\r\nvar sameAsBigDay = new Date();\r\nvar ord = (sameAsBigDay.getTime());\r\nvar pubsMotsCles = \"\";\r\nvar exc;\r\nvar lienhautdepage = \"\";\r\nvar etatmessage = false;\r\nvar enchainement = false;\r\nsas_tmstp=Math.round(Math.random()*10000000000);\r\nfunction SmartAdServer(sas_pageid,sas_formatid,sas_master,sas_target) {\r\n if ((sas_master!=\'M\')&&(sas_master!=\'S\')) {sas_master=\'S\'};\r\n document.write(\'<SCR\'+\'IPT SRC=\"http://www.smartadserver.com/call/pubj/\' + sas_pageid + \'/\' + sas_formatid + \'/\'+sas_master + \'/\' + sas_tmstp + \'/\' + escape(sas_target) + \'?\"></SCR\'+\'IPT>\');\r\n}\r\n</SCRIPT>\r\n<SCRIPT LANGUAGE=\"JAVASCRIPT\" SRC=\"http://www.01net.com/js/exc.js\"></SCRIPT>\r\n<script language=\"javascript\" src=\"http://telecharger.01net.com/shopping/js/headservicesV4.js\"></script>\r\n<noscript>\r\n<a href=\"http://cinema.01net.com\">T\351l\351charger des bandes-annonces, des teasers, des extraits et des making of de vos films cin\351ma pr\351f\351r\351s</a>,\r\n<a href=\"http://www.01net.com/BusinessTechnologies/\">Portail leader de l\'information sur les nouvelles technologies - Actualites et enquetes sur l\'informatique et les NTIC (nouvelles technologies de l\'information et la communication). Exemples de sujets : e-business, telecoms, CRM, VPN, 3G, DSL, fournisseurs d\'acces, Linux, piratage, securite informatique, progiciel...</a><br>\r\n<a href=\"http://www.01net.com/securite_informatique.html\">s\351curit\351 informatique</a>,\r\n<a href=\"http://www.01net.com/strategies_ntic.html\">strat\351gies NTIC</a>,\r\n<a href=\"http://www.01net.com/piratage_informatique.html\">piratage informatique</a>,\r\n<a href=\"http://www.01net.com/technologie_dsl.html\">technologie DSL</a>,\r\n<a href=\"http://www.01net.com/solutions_vpn.html\">solutions VPN</a>,\r\n<a href=\"http://www.01net.com/strategie_e-business.html\">strat\351gies</a>,\r\n<a href=\"http://www.01net.com/outils_crm.html\">outils CRM</a>,\r\n<a href=\"http://www.01net.com/logiciel_linux.html\">logiciel Linux</a>,\r\n<a href=\"http://www.01net.com/fournisseur_d_acces.html\">fournisseur d\'acc\350s</a>,\r\n<a href=\"http://www.01net.com/progiciel.html\">progiciel</a>,\r\n<a href=\"http://www.01net.com/stockage_de_donnees.html\">stockage de donn\351es</a>,\r\n<a href=\"http://www.01net.com/etudes_solution_informatique.html\">\351tudes solution informatique</a>,\r\n<a href=\"http://www.01net.com/NTIC.html\">NTIC</a>,\r\n<a href=\"http://www.01net.com/actualite_technologie.html\">actualit\351 technologie</a>,\r\n<a href=\"http://www.01net.com/etude_materiel_informatique.html\">\351tude mat\351riel informatique</a>,\r\n<a href=\"http://www.01net.com/actus/\">actualit\351s des nouvelles technologies</a>,\r\n<a href=\"http://www.01net.com/MicroPerso/\">enqu\352tes et trucs et astuces sur le mat\351riel informatique, les logiciels, les fournisseurs d\'acc\350s...</a>,\r\n<a href=\"http://www.01net.com/emploi/\">emploi et formations informatiques : offres d\'emploi informatique...</a>,\r\n<a href=\"http://www.01net.com/produits/\">fiches, tests mat\351riels et logiciels en informatique</a>,\r\n<a href=\"http://www.01net.com/01informatique\">01 Informatique</a>,\r\n<a href=\"http://www.caractere.net\">Caract\350re, le site des professionnels de l\'imprim\351 - communication imprim\351e, \351dition, emballage, encres, finition, flexographie, h\351liogravure, impression, imprimerie, imprimeur, industries graphiques, num\351rique, offset, papier, pr\351presse, presse, print, reprographie, s\351rigraphie, typographie</a>,\r\n<a href=\"http://www.01net.com/decisionmicro\">Decision Micro</a>,\r\n<a href=\"http://www.01net.com/decisioninformatique\">D\351cision Informatique</a>,\r\n<a href=\"http://www.01net.com/01reseaux\">01 R\351seaux</a>,\r\n<a href=\"http://logiciel.telecharger.01net.com/\">logiciel</a>,\r\n<a href=\"http://developpeur.telecharger.01net.com/windows/Programmation/\">d\351veloppeur programmation</a>,\r\n<a href=\"http://anti-virus.telecharger.01net.com\">anti-virus</a>,\r\n<a href=\"http://gravure-cd-dvd.telecharger.01net.com/windows/Utilitaire/gravure/\">gravure cd dvd</a>,\r\n<a href=\"http://codec.telecharger.01net.com/windows/Multimedia/encodeurs_et_decodeurs/\">codec encodeur d\351codeur</a>,\r\n<a href=\"http://software.telecharger.01net.com/\">software</a>,\r\n<a href=\"http://logiciels.telecharger.01net.com/\">logiciels</a>,\r\n<a href=\"http://gratuit.telecharger.01net.com/\">gratuit</a>,\r\n<a href=\"http://p2p.telecharger.01net.com/windows/Internet/partage/\">p2p peer to peer partage de fichiers</a>,\r\n<a href=\"http://securite.telecharger.01net.com/windows/Utilitaire/cryptage_et_securite/\">s\351curit\351</a>,\r\n<a href=\"http://compression-decompression.telecharger.01net.com/windows/Utilitaire/compression_et_decompression/\">compression et d\351compression</a>,\r\n<a href=\"http://divx.telecharger.01net.com/\">divx</a>,\r\n<a href=\"http://utilitaire.telecharger.01net.com/windows/Utilitaire/\">utilitaire</a>,\r\n<a href=\"http://jeux.telecharger.01net.com/windows/Jeux/\">jeux</a>,\r\n<a href=\"http://loisirs.telecharger.01net.com/windows/Loisirs/\">loisirs</a>,\r\n<a href=\"http://mac.telecharger.01net.com/mac/\">mac</a>,\r\n<a href=\"http://linux.telecharger.01net.com/linux/\">linux</a>,\r\n<a href=\"http://shareware.telecharger.01net.com/\">shareware</a>,\r\n<a href=\"http://video-dvd.telecharger.01net.com/windows/Multimedia/lecteurs_video_dvd/\">vid\351o dvd</a>,\r\n<a href=\"http://multimedia.telecharger.01net.com/\">multim\351dia</a>,\r\n<a href=\"http://traduction.telecharger.01net.com/windows/Bureautique/traducteur/\">traduction</a>,\r\n<a href=\"http://mp3.telecharger.01net.com/windows/Multimedia/lecteurs_audio_mp3_cd/\">mp3</a>,\r\n<a href=\"http://tchat.telecharger.01net.com/windows/Internet/communication/\">tchat</a>\r\n<a href=\"http://chat.telecharger.01net.com/windows/Internet/communication/\">chat</a>,\r\n<a href=\"http://musique.telecharger.01net.com/\">musique</a>,\r\n<a href=\"http://mobile.telecharger.01net.com/mobile/\">mobile</a>,\r\n<a href=\"http://telephone_portable.telecharger.01net.com/mobile/\">t\351l\351phone portable</a>,\r\n<a href=\"http://telephone_mobile.telecharger.01net.com/mobile/\">t\351l\351phone mobile</a>\r\n</noscript>\r\n</head>\r\n</head>\r\n<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#000000\" marginwidth=0 marginheight=0 topmargin=0 leftmargin=0>\r\n<!-- + ZONE TETE -->\r\n<!-- ********** DEBUT MODELE INTERNE TETES MHA-tetev4 //-->\r\n<table width=100% height=66 cellspacing=0 cellpadding=0 border=0 bgcolor=#ffffff>\r\n\t<tr>\r\n\t\t<td height=8 colspan=2><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=8></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td valign=bottom><a href=\"http://microachat.01net.com\"><img src=\"http://www.01net.com/img/v4/logos_tete/tet_gauche-mha.gif\" border=0></a></td>\r\n\t\t<td valign=bottom bgcolor=#FFFFFF bbackground=\"http://www.01net.com/img/v4/tet_droite.gif\" width=100% style=\"background-image:url(/img/v4/tet_droite-mha.gif);background-position:bottom;background-repeat:repeat-x\"><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=66 align=left hspace=0 vspace=0></td>\r\n\t</tr>\r\n</table>\r\n<table width=100% cellspacing=0 cellpadding=0 border=0 bgcolor=#ffffff>\r\n\t<tr>\r\n\t\t<td valign=top background=\"http://www.01net.com/img/v4/fond_date-mha.gif\" height=18 width=500><img src=\"http://www.01net.com/img/dot.gif\" width=500 height=1><br><img src=\"http://www.01net.com/img/dot.gif\" width=19 height=1><font face=\"Arial\" size=1 color=#666666 style=\"font-size: 11px;\"><b>Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004 | 16:45</b></font></td>\r\n\t\t<td width=100% background=\"http://www.01net.com/img/v4/fond_date2-mha.gif\" height=18></td>\r\n\t</tr>\r\n</table>\r\n<!-- ********** FIN MODELE INTERNE TETES MHA-tetev4 //--> <!-- - ZONE TETE -->\r\n<!-- ***************************************************************************************************************************************************************************************************************************** //-->\r\n<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n<!-- DEBUT PARTIE PUB //-->\r\n\t<tr>\r\n<td align=center valign=middle colspan=2 background=\"http://www.01net.com/img/v4/fond_bann.gif\"><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br>\r\n<!-- + ZONE Z0 -->\r\n<SCRIPT LANGUAGE=\"JAVASCRIPT\">\r\nvar fa = \"\";\r\nvar fab = document.URL.toString();\r\nif (fab.indexOf(\"?fa\") != -1 || fab.indexOf(\"&fa\") != -1)\r\n{\r\nfa = \";!category=fai\";\r\n}\r\nvar etatmessage = false;\r\nvar enchainement = false;\r\n</SCRIPT>\r\n<SCRIPT LANGUAGE=\"JavaScript1.1\">\r\nsas_pageid=\'167/3872\';\r\nsas_formatid=95;\t\t\t// Format : Banner/Scope 468x60\r\nsas_master=\'M\';\t\t\t// Master : M=master or S=slave\r\nsas_target=exc + \'rubrique\';\t\t\t// Targeting\r\nSmartAdServer(sas_pageid,sas_formatid,sas_master,sas_target);\r\n</SCRIPT>\r\n <!-- - ZONE Z0 --></td>\r\n\t\t<td valign=top width=23 background=\"http://www.01net.com/img/v4/sep_verticale.gif\" ><img src=\"http://www.01net.com/img/dot.gif\" width=23 height=1><br></td>\r\n<td valign=top width=100% bgcolor=\"ffffff\" rowspan=3><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=125><br>\r\n<!-- +ZONE_Dn -->\r\n<!-- + ZONE D0 -->\r\n<!-- DEBUT MA_ColD -->\r\n<div style=\"background-color : #ffffff; width : 150px; padding-left : 5px; padding-right : 5px; font-family : Arial, Helvetica;\">\n\t\t\t\t\t<table style=\"border-spacing : 0; width : 146px; margin-top : 0px;\" cellspacing=\"0\">\n\t\t\t\t\t<tr><th colspan=\"2\" style=\"padding : 0;\"><img src=\"http://micro-achat.01net.com/img/utils/micro-achat/tete-produitsrecherches.gif\" alt=\"\" /></th></tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Imagerie </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/12537-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/imagerie/moniteurs-lcd/l1720b/\">LG L1720B</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">332.89 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Ordinateurs </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/4043-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/desktops/veriton-7600g/\">Acer Veriton 7600G</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">705 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Ordinateurs </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/1903-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/sn95g5/\">Shuttle SN95G5</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">375 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Composants </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/1259-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/composants/cartes-meres/a7n8x-e-deluxe/\">Asus A7N8X-E Deluxe</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">91.99 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Composants </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/4687-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/composants/ventilateur/sp-94/\">Thermalright SP-94</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">49 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr></table>\n\t\t\t\t<table style=\"border-spacing : 0px 1px; width : 146px; margin-top : 15px;\" cellspacing=\"0\">\n\t\t\t\t<tr><th colspan=\"2\" style=\"padding : 0;\"><img src=\"http://micro-achat.01net.com/img/utils/micro-achat/tete-revendeurmisajour.gif\" alt=\"\" /></th></tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">1 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Rhone-Alpes/Ain/pc-look\" style=\"color : #000000; text-decoration : none;\">PC Look</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">2 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Nord-Pas-de-Calais/Pas-de-Calais/atelier-informatique\" style=\"color : #000000; text-decoration : none;\">Atelier Informatique</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">3 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Val-de-Marne/zanax-multimedia\" style=\"color : #000000; text-decoration : none;\">Zanax Multim\351dia</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">4 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Hauts-de-Seine/misteroops\" style=\"color : #000000; text-decoration : none;\">MISTEROOPS</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">5 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/12/168-golden-avenue\" style=\"color : #000000; text-decoration : none;\">168 Golden Avenue</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">6 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Seine-Saint-Denis/microchoix\" style=\"color : #000000; text-decoration : none;\">microchoix</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">7 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/12/e-soph\" style=\"color : #000000; text-decoration : none;\">e-Soph</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">8 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/13/pc-price-club\" style=\"color : #000000; text-decoration : none;\">PC Price Club</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">9 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Seine-et-Marne/pc-77\" style=\"color : #000000; text-decoration : none;\">PC 77</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">10 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Alsace/Bas-Rhin/web-in-informatique\" style=\"color : #000000; text-decoration : none;\">Web In Informatique</a></td>\n\t\t\t\t</tr></table>\n\t\t\t\t</div>\n\t\t\t\t<br>\r\n<!-- FIN MA_ColD --> <!-- - ZONE D0 -->\r\n<!-- + ZONE D1 -->\r\n<!-- - ZONE D1 -->\r\n<!-- + ZONE D2 -->\r\n<!-- - ZONE D2 -->\r\n<!-- -ZONE_Dn -->\r\n</td>\r\n\t</tr>\r\n<!-- FIN PARTIE PUB //-->\r\n\t<tr>\r\n\t\t<td valign=top width=193 height=100% background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n\t\t<!-- contenu colonne de gauche //-->\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0 background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n<!-- +ZONE_Gn -->\r\n<!-- + ZONE G0 -->\r\n<tr><!-- ********** DEBUT MHA_MenusChainesV4 //-->\r\n<td valign=top>\n<table border=0 cellpadding=0 cellspacing=0 width=193 bgcolor=#FFFFFF>\n<tr>\n<td background=\"/img/v4/menus/motifgauche_menus.gif\" width=20 rowspan=2><img src=\"/img/dot.gif\" width=20 height=20></td>\n<td width=173 colspan=2 bgcolor=#FFFFFF><img src=\"/img/dot.gif\" width=173 height=20></td>\n</tr>\n<tr>\n<td valign=top width=159>\n\n<a href=\"http://www.01net.com\"><img src=\"/img/v4/menus/mha/home01net-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com\"><img src=\"/img/v4/menus/mha/home-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4317.html\"><img src=\"/img/v4/menus/mha/ordinateurs-2.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4318.html\"><img src=\"/img/v4/menus/mha/composants-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4319.html\"><img src=\"/img/v4/menus/mha/stockage-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4320.html\"><img src=\"/img/v4/menus/mha/image-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4321.html\"><img src=\"/img/v4/menus/mha/peripheriques-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4322.html\"><img src=\"/img/v4/menus/mha/reseaux-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4323.html\"><img src=\"/img/v4/menus/mha/accessoires-1.gif\" width=159 border=0></a><br>\n<a href=\"http://micro-achat.01net.com/guide-produits/\"><img src=\"/img/v4/menus/mha/comparateur-1.gif\" width=159 border=0></a><br>\n<a href=\"http://micro-achat.01net.com/annuaire/\"><img src=\"/img/v4/menus/mha/annuaire-1.gif\" width=159 border=0></a><br></td>\n<td width=14><img src=\"/img/dot.gif\" width=14 height=14></td>\n</tr>\n<tr>\n<td colspan=3><img src=\"/img/v4/menus/bas_menus.gif\" width=193 height=31></td>\n</tr>\n</table></td><!-- ********** FIN MHA_MenusChainesV4 //--> </tr><!-- - ZONE G0 -->\r\n<!-- + ZONE G1 -->\r\n<tr><!-- DEBUT MODELE RUBRIQUE V4ColGaucheMHA //-->\r\n<!-- ********** DEBUT BLOC DernieresNewsTC //-->\r\n<td valign=top>\r\n<!-- DEBUT RECHERCHE MHA -->\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n\t\t\t<td valign=top background=\"http://microachat.01net.com/img/v4/fond_rech_mha.gif\" height=98 style=\"background-repeat:no-repeat;\"><form method=\"get\" name=\"chercher\" action=\"http://www.01net.com/aiguillage_recherche/1,6138,,00.html\"><img src=\"http://microachat.01net.com/img/dot.gif\" width=193 height=17><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><input type=\"text\" name=\"fullText\" style=\"width:130px;font:12px;\"><br><img src=\"http://microachat.01net.com/img/dot.gif\" width=1 height=6><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><select name=\"sousArbo\" style=\"width:130px;font:12px;\">\r\n\t\t\t<option value=\"mha\">dans Micro Achat\r\n\t\t\t<option value=\"cmp\">les prix\r\n\t\t\t<option value=\"ann\">les revendeurs\r\n\t\t\t<option value=\"2641\">tout 01net.\r\n\t\t\t<option value=\"emploi\">les offres d\'emploi\r\n\t\t\t<option value=\"telecharger\"> telecharger.com\r\n\t\t\t<option value=\"web\">le web\r\n\t\t\t</select><br><img src=\"http://microachat.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"http://microachat.01net.com/img/v4/ok_bloc_recher_mha.gif\" border=\"0\"></form>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=10 vspace=0>\r\n<!-- FIN RECHERCHE MHA -->\r\n <!-- modele TCFilColgTitV4 //-->\r\n <table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top>\r\n\t\t<table width=155 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=2><img src=\"http://www.01net.com/img/ban/Ban_v4_DernieresNews01net.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4></td>\r\n\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/256059.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">CD et DVD bient\364t insensibles aux rayures<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/255796.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">OpenOffice gagne son service<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/255731.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">La messagerie en cinq minutes selon Ipswitch<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top colspan=2><A HREF=\"http://www.01net.com/actus/\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\">> toutes les news<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td colspan=2><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/crochet_bleuhaut_155.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20> <!-- ********** FIN BLOC DernieresNewsTC //-->\r\n<!-- ********** DEBUT BLOC NL_MHA //-->\r\n<SCRIPT language=\"javascript\" src=\"http://www.01net.com/js/lib.js\"></SCRIPT>\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<FORM name=\"formgen\" method=\"get\" action=\"http://microachat.01net.com/outils/newsletter_MicroAchat.html\" onSubmit=\"return validateForm(this)\">\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=155 colspan=4><img src=\"http://www.01net.com/img/ban/Ban_V4_Newslett.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=10><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=1 bgcolor=#CC0000><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t<td width=153>\r\n\t\t<table width=153 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=10><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t\t\t<td valign=top><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefinefd_ffffff.gif\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Recevez chaque jour l\'actualit\351 des produits et des promos<br></font>\r\n\t\t\t\t<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><input type=\"text\" name=\"email\" size=\"14\" style=\"width:130px;font:12px;\" value=\"entrez votre e-mail\" onFocus=\"javascript:document.formgen.email.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"http://www.01net.com/img/v4/ok_bloc_recher.gif\" border=\"0\"></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td width=1 bgcolor=#CC0000><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=155 colspan=4><img src=\"http://www.01net.com/img/v4/base_newsletters.gif\"></td>\r\n\t\t</FORM>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20>\r\n<SCRIPT language=\"Javascript\">\r\ndocument.formgen.email.validator= \'notNullEmailPat\';\r\ndocument.formgen.email.nomvalidator= \'E-mail\';\r\n</SCRIPT>\r\n<!-- ********** FIN BLOC NL_MHA //-->\r\n</td>\r\n</tr>\r\n<tr>\r\n<!-- ********** DEBUT BLOC Actus ActusUneV4 //-->\r\n<td valign=top background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n<table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top>\r\n\t\t<table width=155 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/ban/Ban_v4_LaUne.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/entreprise/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Entreprise</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://www.01net.com/article/255737.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">Quand le billet papier s\'envole vers la d\351mat\351rialisation</font></a></td>\r\n\t\t\t\t<td valign=top width=2><img src=\"http://www.01net.com/img/dot.gif\" width=2 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/article/255737.html\"><img src=\"http://www.01net.com/img/MEA_v4/billet_virtuel-65.jpg\" border=0></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/pratique/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Trucs et astuces</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255698.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">D\351pannez Windows XP</font></a></td>\r\n\t\t\t\t<td valign=top width=2><img src=\"http://www.01net.com/img/dot.gif\" width=2 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/article/255698.html\"><img src=\"http://www.01net.com/img/MEA_v4/depannez_XP-65.jpg\" border=0 ></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t</tr>\r\n\t\t <tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top colspan=3><a href=\"http://www.01net.com/conso/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Conso</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255524.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">Vos photos sur papier imprimante ou labo ?<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t<!-- exemple de lien avec pseudorub pour produits et tests -->\r\n\t\t<!-- <a href=\"/outils/PseudoRub.php?base=test-comp&rub=1730&pseudo=test-comp20041005\"> -->\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top colspan=3><a href=\"http://www.01net.com/produits/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Produits & Tests</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255782.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">5 programmes d\222encodage vid\351o gratuits<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20>\r\n</td>\r\n<!-- ********** FIN BLOC Actus ActusUneV4 //--> </tr>\r\n<tr>\r\n<td>\r\n<table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top><a href=\"mailto:s.cohen@micro-achat.fr\"><img border=0 src=\"http://www.01net.com/img/v4/espace-revendeurs.gif\"></td>\r\n\t</tr>\r\n</table>\r\n<br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20></td>\r\n<!-- FIN MODELE RUBRIQUE V4ColGaucheMHA //--> </tr><!-- - ZONE G1 -->\r\n<!-- + ZONE G2 -->\r\n<!-- - ZONE G2 -->\r\n<!-- + ZONE G3 -->\r\n<!-- - ZONE G3 -->\r\n<!-- + ZONE G4 -->\r\n<!-- - ZONE G4 -->\r\n<!-- + ZONE G5 -->\r\n<!-- - ZONE G5 -->\r\n<!-- + ZONE G6 -->\r\n<!-- - ZONE G6 -->\r\n<!-- + ZONE G7 -->\r\n<!-- - ZONE G7 -->\r\n<!-- + ZONE G8 -->\r\n<!-- - ZONE G8 -->\r\n<!-- + ZONE G9 -->\r\n<!-- - ZONE G9 -->\r\n<!-- + ZONE GA -->\r\n<!-- - ZONE GA -->\r\n<!-- + ZONE GB -->\r\n<!-- - ZONE GB -->\r\n<!-- + ZONE GC -->\r\n<!-- - ZONE GC -->\r\n<!-- + ZONE GD -->\r\n<!-- - ZONE GD -->\r\n<!-- + ZONE GE -->\r\n<!-- - ZONE GE -->\r\n<!-- + ZONE GF -->\r\n<!-- - ZONE GF -->\r\n<!-- -ZONE_Gn -->\r\n\t\t</table>\r\n\t\t<!-- fin contenu colonne de gauche //-->\r\n\t\t</td>\r\n<!-- ***************************************************************** DEBUT VENTRE*********************************************************************************************************************************************** //-->\r\n<!-- DEBUT WORK -->\r\n\t\t<td valign=top width=625 bgcolor=#ffffff><img src=\"http://www.01net.com/img/dot.gif\" width=625 height=1><br>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_hn -->\r\n<!-- + ZONE h0 -->\r\n<!-- MA_ban_int -->\r\n<td valign=\"top\">\r\n<img src=\"/img/dot.gif\" height=\"18\"><br>\r\n<!-- pour ordipda -->\r\n<table width=\"625\" cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"/img/v4/MA/Ban_MA_ordis.gif\"></td>\r\n\t</tr>\r\n</table>\r\n\t</td>\r\n<!-- /MA_ban_int --> <!-- - ZONE h0 -->\r\n<!-- + ZONE h1 -->\r\n<!-- - ZONE h1 -->\r\n<!-- + ZONE h2 -->\r\n<!-- - ZONE h2 -->\r\n<!-- -ZONE_hn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_Hn -->\r\n<!-- + ZONE H0 -->\r\n<!-- Ma_int_Leader -->\r\n <td valign=top>\r\n<img src=\"/img/dot.gif\" width=1 height=18><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=320>\r\n<tr>\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<td width=144 valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=143 height=1 vspace=0><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:11px;>Portable</font><br>\r\n<A HREF=\"/article/256198.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=font-size:14px;><b>Un nouvel ultra portable r\351alis\351 par Nec</b></font></a><br>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/256198.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67509.jpg.res_100-100.jpg\" border=0 hspace=0 vspace=0></a><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n<font face=arial,helvetica size=2 color=#000000 style=font-size:12px;><img src=\"/img/v4/flechefine_fondtransp.gif\">Le Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.</font><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:12px;>\340 partir de 1663 \200</font>\r\n</td>\r\n<td width=17 background=\"/img/v4/MA/v4-fond-sep-mea-leader.gif\"><img src=\"/img/dot.gif\" width=17 height=1></td>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<td width=144 valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=143 height=1 vspace=0><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:11px;>Portable</font><br>\r\n<A HREF=\"/article/255194.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=font-size:14px;><b>Asus pr\351sente trois petits nouveaux dans la gamme A3N</b></font></a><br>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255194.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67168.jpg.res_100-100.jpg\" border=0 hspace=0 vspace=0></a><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n<font face=arial,helvetica size=2 color=#000000 style=font-size:12px;><img src=\"/img/v4/flechefine_fondtransp.gif\">Ces trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.</font><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:12px;>\340 partir de 1346 \200</font>\r\n</td>\r\n<td width=15><img src=\"/img/dot.gif\" width=15 height=1></td>\r\n\t\t\t\t</tr>\r\n</table>\r\n</td>\r\n<!-- /Ma_int_Leader --> <!-- - ZONE H0 -->\r\n<!-- + ZONE H1 -->\r\n<!-- - ZONE H1 -->\r\n<!-- + ZONE H2 -->\r\n<!-- MA_BP_MP -->\r\n<td valign=\"top\" width=\"100%\">\r\n\t<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n\t<tr>\r\n\t<td width=\"50%\" valign=\"top\">\r\n\t<!-- DEBUT MicroAchat MA_BonPlan -->\r\n<td valign=top>\r\n<img src=\"/img/dot.gif\" width=1 height=18><br>\r\n<table border=0 cellpadding=1 cellspacing=0 width=145 bgcolor=#CC0000>\r\n<tr>\r\n<td align=center><font face=arial,helvetica size=1 color=#FFFFFF style=\"font-size:11px;\">BON PLAN</a></font></td>\r\n</tr>\r\n<tr>\r\n<td width=145>\r\n<div style=\"padding:5px;padding-left:5px;padding-fight:5px;margin:0px;margin-left:1px;margin-right:1px;background-color:#FFFFFF;\">\r\n<img src=\"/img/microachat/logo_shuttle_SB83G5.gif\" border=0><br>\r\n<font face=arial,helvetica size=2 color=#CC0000 style=\"font-size:12px;\">Les derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.<br></font>\r\n<center><a href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/sb83g5/?fabriquant=1&page=1&tri=titre\"><img src=\"/img/microachat/mea_shuttle_SB83G5.gif\" border=0 vspace=5></a><br></center>\r\n<center>\r\n<font face=arial,helvetica size=2 color=#CC0000 style=\"font-size:13px;\"><b>\340 partir de</b><br>\r\n<div style=\"border:solid 2px #CC0000;width:100px;background-color:#FFCC00;\"><b>415 \200</b></div>\r\n</center>\r\n</div>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td align=center><font face=arial,helvetica size=1 color=#FFFFFF style=\"font-size:11px;\">publicit\351</a></font></td>\r\n</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_BonPlan --> \t</td>\r\n\t<td width=\"15\"><img src=\"/img/dot.gif\" width=\"15\"></td>\r\n\t<td width=\"50%\" valign=\"top\">\r\n\t<!-- DEBUT MicroAchat MA_MeillPrixAct //-->\r\n<td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=145 height=1><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=18><br>\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<FORM name=\"prix\" action=\"http://www.micro-achat.01net.com/guide-produits/recherche.php\" method=\"post\">\r\n\t\t<td width=145 colspan=3><img src=\"http://www.01net.com/img/ban/Ban_v4_MeillPrix_MA.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=1 bgcolor=#FFCC00><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t<td width=143>\r\n\t\t<table width=143 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=6><img src=\"http://www.01net.com/img/dot.gif\" width=6 height=1></td>\r\n\t\t\t\t<td valign=top><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=15><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"http://www.01net.com/img/ban/Ban_MA_trouv_ordi.gif\"><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/desktops/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Desktops</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/portables/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Portables</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Mini-PC</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/pda---tablets-pc/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Pda / Tablets-PC</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/apple/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Apple</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/gps/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">GPS</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20><br>\r\n\t\t\t\t\t\t\t\t<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><input type=\"text\" name=\"recherchedirecte\" size=\"14\" style=\"width:130px;font:12px;\" value=\" recherche directe\" onFocus=\"javascript:document.prix.recherchedirecte.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"/img/v4/MA/ok_bloc_recher_MA.gif\" border=\"0\"></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td width=1 bgcolor=#FFCC00><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=145 colspan=3><img src=\"http://www.01net.com/img/v4/MA/base_meillPrix.gif\"></td>\r\n\t\t</FORM>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_MeillPrixAct //--> \t</td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n<!-- /MA_BP_MP --> <!-- - ZONE H2 -->\r\n<!-- -ZONE_Hn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_Tn -->\r\n<!-- + ZONE T0 -->\r\n <td valign=\"top\">\r\n<img src=\"http://www.01net.com/img/dot.gif\" height=13><br>\r\n<table border=0 width=320 cellpadding=0 cellspacing=0>\r\n<tr>\r\n<td width=305><img src=\"http://www.01net.com/img/ban/Ban_v4_DernNews_MA.gif\"><br><img src=\"http://www.01net.com/img/v4/MA/v4-tiret-hauts-mha.gif\"></td>\r\n<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n</tr>\r\n<tr>\r\n<td bgcolor=\"#FEF9E0\">\r\n\t<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Portable <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255149.html\" style=\"color:#000000;text-decoration:none;\">Toshiba consacre deux gammes de machines au multim\351dia</a></b><br>\r\n\t<font color=\"#000000\">Equipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Ordinateur <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254686.html\" style=\"color:#000000;text-decoration:none;\">Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme</a></b><br>\r\n\t<font color=\"#000000\">La firme \340 la pomme propose une station de travail \351volutive et relativement abordable.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>PC <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254549.html\" style=\"color:#000000;text-decoration:none;\">Alienware propose deux machines au look \351trange</a></b><br>\r\n\t<font color=\"#000000\">Aurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Portable <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254501.html\" style=\"color:#000000;text-decoration:none;\">Trois nouveaux iBook G4 chez Apple</a></b><br>\r\n\t<font color=\"#000000\">Chez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=10></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-red-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td align=\"right\">\r\n\t\t\t\t<A HREF=\"http://microachat.01net.com/rubrique/4365.html\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 10px;\">> toutes les news</font></a>\r\n\t\t\t</td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n</td> <!-- - ZONE T0 -->\r\n<!-- + ZONE T1 -->\r\n<!-- Ma_derpromo -->\r\n <td valign=\"top\">\r\n<img src=\"/img/dot.gif\" height=13><br>\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td bgcolor=\"#ffffff\"><img src=\"/img/v4/MA/v4-lespromos-mha.gif\"><br><img src=\"/img/v4/MA/v4-tiret-hauts-mha.gif\"></td>\r\n</tr>\r\n</table>\r\n<!-- DEBUT MODELE D\'AFFICHAGE POUR LES n PREMIERS ARTICLES //-->\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255806.html\" class=\"nodeco\"><img src=\"/images/67462.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255806.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>Asus A3N15-C Pro</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>1170 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255688.html\" class=\"nodeco\"><img src=\"/images/67381.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255688.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>Soltek EQ3702A Miroir</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>559 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255513.html\" class=\"nodeco\"><img src=\"/images/67319.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255513.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>IBM ThinkPad R51</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Voici un portable complet et pourtant relativement l\351ger.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>1299 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t\t<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td><img src=\"http://www.01net.com/img/dot.gif\" height=10></td>\r\n</tr>\r\n<tr>\r\n<td background=\"/img/v4/MA/v4-sep-red-mha.gif\"><img src=\"/img/dot.gif\" height=1></td>\r\n</tr>\r\n<tr>\r\n<td align=\"right\" valign=\"top\">\r\n\t\t\t\t<A HREF=\"http://microachat.01net.com/rubrique/4366.html\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 10px;\">> toutes les promos</font></a>\r\n\t\t</td>\r\n</tr>\r\n</table>\r\n</td>\r\n<!-- /Ma_derpromo --> <!-- - ZONE T1 -->\r\n<!-- + ZONE T2 -->\r\n<!-- - ZONE T2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE T3 -->\r\n<!-- DEBUT MicroAchat MA_PubG -->\r\n<td valign=top align=center>\r\n<table border=0 width=320 cellpadding=0 cellspacing=0>\r\n\t<tr>\r\n\t\t<td width=305><img src=\"/img/dot.gif\" width=1 height=12><br><a href=\"http://www.smartadserver.com/call/cliccommand/45590/[timestamp]?\" target=_blank><img src=\"/img/microachat/Bandeau_FX6021.jpg\" border=0></a></td>\r\n\t\t<td><img src=\"/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_PubG --> <!-- - ZONE T3 -->\r\n<!-- + ZONE T4 -->\r\n<!-- DEBUT MicroAchat MA_PubD -->\r\n<td valign=top align=center>\r\n<table border=0 width=305 cellpadding=0 cellspacing=0>\r\n\t<tr>\r\n\t\t<td width=305><img src=\"/img/dot.gif\" width=1 height=12><br><a href=\"http://www.smartadserver.com/call/cliccommand/45591/[timestamp]?\" target=_blank><img src=\"/img/microachat/twc_305x125.jpg\" border=0></a></td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_PubD --> <!-- - ZONE T4 -->\r\n<!-- + ZONE T5 -->\r\n<!-- - ZONE T5 -->\r\n<!-- -ZONE_Tn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n\t\t\t<td valign=top>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n<!-- +ZONE_gn -->\r\n<!-- + ZONE g0 -->\r\n<!-- - ZONE g0 -->\r\n<!-- + ZONE g1 -->\r\n<!-- - ZONE g1 -->\r\n<!-- + ZONE g2 -->\r\n<!-- - ZONE g2 -->\r\n<!-- + ZONE g3 -->\r\n<!-- - ZONE g3 -->\r\n<!-- + ZONE g4 -->\r\n<!-- - ZONE g4 -->\r\n<!-- + ZONE g5 -->\r\n<!-- - ZONE g5 -->\r\n<!-- + ZONE g6 -->\r\n<!-- - ZONE g6 -->\r\n<!-- + ZONE g7 -->\r\n<!-- - ZONE g7 -->\r\n<!-- + ZONE g8 -->\r\n<!-- - ZONE g8 -->\r\n<!-- + ZONE g9 -->\r\n<!-- - ZONE g9 -->\r\n<!-- -ZONE_gn -->\r\n\t\t\t</table>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t\t\t<tr>\r\n<!-- +ZONE_Mn -->\r\n<!-- + ZONE M0 -->\r\n<!-- modele Ma_GuideAch //-->\r\n <td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" height=13><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t<tr>\r\n\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_GuideAchat_MA.gif\" vspace=1></td>\r\n\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<div style=\"border:solid 1px #FFCC00;width:100%\">\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<center>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"http://microachat.01net.com/article/254561.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67088.jpg.res_121-111.jpg\" border=0 hspace=0 vspace=0></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n</center>\r\n<div style=\"padding:5px;\">\r\n<a href=\"http://microachat.01net.com/article/254561.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\"><b>Les graveurs de DVD</b><br></font></a>\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">Quel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.</font></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n</td> <!-- - ZONE M0 -->\r\n<!-- + ZONE M1 -->\r\n<!-- modele Ma_DirectLab //-->\r\n <td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t<tr>\r\n\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_DirectLab_MA.gif\" vspace=1></td>\r\n\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<div style=\"border:solid 1px #FFCC00;width:100%\">\r\n\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255744.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>Kodak EasyShare Printer Dock Plus :</b>\r\n\t\t\t\t\t\tvos photos 10 x 15 cm en 60 secondes</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255780.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>3DMark05 :</b>\r\n\t\t\t\t\t\tun labo 3D \340 domicile</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255691.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>DVDInfoPro 2.6</b>\r\n\t\t\t\t\t\treconna\356t CD et DVD</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255722.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>Scaleo PA D3008, de Fujitsu-Siemens :</b>\r\n\t\t\t\t\t\tune impression d\'inachev\351</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255514.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">Carbon 5 Go : 2 500 chansons dans le creux de la main</font></a></div>\r\n\t\t\t</div></td>\r\n\t</tr>\r\n</table>\r\n</td> <!-- - ZONE M1 -->\r\n<!-- + ZONE M2 -->\r\n<!-- DEBUT MicroAchat MA_AnnTelec -->\r\n<td valign=top>\r\n<script type=\"text/javascript\">\r\nfunction regionChange()\r\n{\r\ndocument.selection.departement.options.length=0;\r\nswitch(document.selection.region.value)\r\n\t{\r\n\t\tcase \"aucun\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Nord-Pas-de-Calais\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pas-de-Calais\", \"Pas-de-Calais\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Nord\", \"Nord\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Haute-Normandie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Eure\", \"Eure\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-Maritime\", \"Seine-Maritime\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Basse-Normandie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Manche\", \"Manche\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Calvados\", \"Calvados\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Orne\", \"Orne\");\r\n\t\tbreak;\r\n\t\tcase \"Picardie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Somme\", \"Somme\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Oise\", \"Oise\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aisne\", \"Aisne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Bretagne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Finistere\", \"Finistere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cotes-dArmor\", \"Cotes-dArmor\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Morbihan\", \"Morbihan\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ille-et-Vilaine\", \"Ille-et-Vilaine\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Pays-de-Loire\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loire-Atlantique\", \"Loire-Atlantique\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vendee\", \"Vendee\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Maine-et-Loire\", \"Maine-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Mayenne\", \"Mayenne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Sarthe\", \"Sarthe\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Centre\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Eure-et-Loir\", \"Eure-et-Loir\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loiret\", \"Loiret\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loir-et-Cher\", \"Loir-et-Cher\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Indre-et-Loire\", \"Indre-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Indre\", \"Indre\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cher\", \"Cher\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Ile-de-France\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Val-dOise\", \"Val-dOise\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Yvelines\", \"Yvelines\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Essonne\", \"Essonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-et-Marne\", \"Seine-et-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hauts-de-Seine\", \"Hauts-de-Seine\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-Saint-Denis\", \"Seine-Saint-Denis\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Val-de-Marne\", \"Val-de-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Paris\", \"Paris\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Champagnes-Ardennes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ardennes\", \"Ardennes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Marne\", \"Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aube\", \"Aube\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Marne\", \"Haute-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Lorraine\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vosges\", \"Vosges\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Meurthe-et-Moselle\", \"Meurthe-et-Moselle\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Meuse\", \"Meuse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Moselle\", \"Moselle\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Alsace\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Bas-Rhin\", \"Bas-Rhin\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haut-Rhin\", \"Haut-Rhin\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Franche-Compte\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Jura\", \"Jura\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Doubs\", \"Doubs\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Saone\", \"Haute-Saone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Territoire-de-Belfort\", \"Territoire-de-Belfort\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Bourgogne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Yonne\", \"Yonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Nievre\", \"Nievre\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cote-dOr\", \"Cote-dOr\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Saone-et-Loire\", \"Saone-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Poitou-Charentes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Deux-Sevres\", \"Deux-Sevres\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Charente-Maritime\", \"Charente-Maritime\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Charente\", \"Charente\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vienne\", \"Vienne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Limousin\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Vienne\", \"Haute-Vienne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Correze\", \"Correze\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Creuse\", \"Creuse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Auvergne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Allier\", \"Allier\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Puy-de-Dome\", \"Puy-de-Dome\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cantal\", \"Cantal\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Loire\", \"Haute-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Rhone-Alpes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loire\", \"Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Rhone\", \"Rhone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ain\", \"Ain\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ardeche\", \"Ardeche\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Drome\", \"Drome\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Isere\", \"Isere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Savoie\", \"Savoie\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Savoie\", \"Haute-Savoie\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Aquitaine\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gironde\", \"Gironde\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Landes\", \"Landes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pyrenees-Atlantiques\", \"Pyrenees-Atlantiques\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lot-et-Garonne\", \"Lot-et-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Dordogne\", \"Dordogne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Midi-Pyrenees\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lot\", \"Lot\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Tarn-et-Garonne\", \"Tarn-et-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gers\", \"Gers\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hautes-Pyrenees\", \"Hautes-Pyrenees\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Garonne\", \"Haute-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ariege\", \"Ariege\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Tarn\", \"Tarn\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aveyron\", \"Aveyron\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Languedoc-Roussillon\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pyrenees-Orientales\", \"Pyrenees-Orientales\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aude\", \"Aude\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Herault\", \"Herault\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gard\", \"Gard\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lozere\", \"Lozere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Provence-Alpes-Cote-dazur\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Bouches-du-Rhone\", \"Bouches-du-Rhone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vaucluse\", \"Vaucluse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Alpes-de-haute-Provence\", \"Alpes-de-haute-Provence\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hautes-Alpes\", \"Hautes-Alpes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Var\", \"Var\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Alpes-Maritimes\", \"Alpes-Maritimes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Corse\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Corse-du-Sud\", \"Corse-du-Sud\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Corse\", \"Haute-Corse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"DomTom\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Guadeloupe\", \"Guadeloupe\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Guyane\", \"Guyane\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"La-Reunion\", \"La-Reunion\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Martinique\", \"Martinique\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Mayotte\", \"Mayotte\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"St-Pierre-et-Miquelon\", \"St-Pierre-et-Miquelon\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t}\r\n}\r\nfunction deptChange()\r\n{\r\nif (document.selection.departement.value == \'Paris\')\r\n\tdocument.getElementById(\'arrondissement\').style.display = \'inline\';\r\nelse\r\n\tdocument.getElementById(\'arrondissement\').style.display = \'none\';\r\n}\r\n</script>\r\n<table width=305 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td valign=top>\r\n\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_AnnuaiRev_MA.gif\" vspace=1></td>\r\n\t\t\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr><form action=\"http://micro-achat.01net.com/annuaire/recherche.php\" method=\"post\" name=\"selection\">\r\n\t\t\t\t<td bgcolor=#FFFFDD>\r\n\t\t\t\t<div style=\"border:solid 1px #FFCC00;width:100%\"><div style=\"padding:2px;\"><img src=\"http://www.01net.com/img/v4/MA/carte_revend.gif\"><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Choisir une r\351gion</b><br></font>\r\n<select name=\"region\" onChange=\"regionChange()\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"aucun\">-------------</option>\r\n<option value=\"Nord-Pas-de-Calais\">Nord-Pas-de-Calais</option>\r\n<option value=\"Haute-Normandie\">Haute-Normandie</option>\r\n<option value=\"Basse-Normandie\">Basse-Normandie</option>\r\n<option value=\"Picardie\">Picardie</option>\r\n<option value=\"Bretagne\">Bretagne</option>\r\n<option value=\"Pays-de-Loire\">Pays-de-Loire</option>\r\n<option value=\"Centre\">Centre</option>\r\n<option value=\"Ile-de-France\">Ile-de-France</option>\r\n<option value=\"Champagnes-Ardennes\">Champagne ardennes</option>\r\n<option value=\"Lorraine\">Lorraine</option>\r\n<option value=\"Alsace\">Alsace</option>\r\n<option value=\"Franche-Compte\">Franche-Compte</option>\r\n<option value=\"Bourgogne\">Bourgogne</option>\r\n<option value=\"Poitou-Charentes\">Poitou-Charentes</option>\r\n<option value=\"Limousin\">Limousin</option>\r\n<option value=\"Auvergne\">Auvergne</option>\r\n<option value=\"Rhone-Alpes\">Rhone-Alpes</option>\r\n<option value=\"Aquitaine\">Aquitaine</option>\r\n<option value=\"Midi-Pyrenees\">Midi-Pyrenees</option>\r\n<option value=\"Languedoc-Roussillon\">Languedoc roussillon</option>\r\n<option value=\"Provence-Alpes-Cote-dazur\">PACA</option>\r\n<option value=\"Corse\">Corse</option>\r\n<option value=\"DomTom\">DomTom</option>\r\n</select>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Un d\351partement</b><br></font>\r\n<select name=\"departement\" onChange=\"deptChange()\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"aucun\">-------------</option>\r\n</select>\r\n<div id=\"arrondissement\" style=\"display : none;\">\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Un arrondissement</b><br></font>\r\n<select name=\"arrondissement\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"0\">-------------</option>\r\n<option value=\"1\">I</option>\r\n<option value=\"2\">II</option>\r\n<option value=\"3\">III</option>\r\n<option value=\"4\">IV</option>\r\n<option value=\"5\">V</option>\r\n<option value=\"6\">VI</option>\r\n<option value=\"7\">VII</option>\r\n<option value=\"8\">VIII</option>\r\n<option value=\"9\">IX</option>\r\n<option value=\"10\">X</option>\r\n<option value=\"11\">XI</option>\r\n<option value=\"12\">XII</option>\r\n<option value=\"13\">XIII</option>\r\n<option value=\"14\">XIV</option>\r\n<option value=\"15\">XV</option>\r\n<option value=\"16\">XVI</option>\r\n<option value=\"17\">XVII</option>\r\n<option value=\"18\">XVIII</option>\r\n<option value=\"19\">XIX</option>\r\n<option value=\"20\">XX</option>\r\n</select>\r\n</div>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=10><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Recherche directe</b><br></font>\r\n\t\t\t\t<font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\"><img src=\"http://www.01net.com/img/dot.gif\" width=8 height=1>rechercher une ville<br><img src=\"http://www.01net.com/img/dot.gif\" width=8 height=1>et/ou une boutique<br></font>\r\n\t\t\t\t<input type=\"text\" name=\"recherchedirecte\" size=\"14\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;width:130px;\" value=\"\" onFocus=\"javascript:document.selection.recherchedirecte.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=3><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1> <input type=\"image\" src=\"http://www.01net.com/img/v4/MA/ok_bloc_recher_MA.gif\" border=\"0\">\r\n\t\t\t\t<table height=23 width=135 cellspacing=0 cellpadding=0 border=0 bgcolor=#FFEE77>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td bgcolor=#FFEE77 valign=middle align=center><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://micro-achat.01net.com/annuaire/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Recherche avanc\351e</b></font></a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t</td>\r\n\t\t\t</tr></form>\r\n\t\t</table>\r\n\t\t</td>\r\n<!-- DEBUT MicroAchat MA_Telecharg //-->\r\n<td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n<table width=\"145\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/v4/MA/Ban_v4_MA_telec.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<table width=\"145\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#DFECF6\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td rowspan=\"17\"><img src=\"http://www.01net.com/img/dot.gif\" width=\"6\"></td>\r\n\t\t\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"></td>\r\n\t\t\t\t<td rowspan=\"17\"><img src=\"http://www.01net.com/img/dot.gif\" width=\"6\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Bureautique\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Bureautique</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Traducteur, organiseur...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Multimedia\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Multim\351dia</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Photo, audio, vid\351o...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Utilitaire\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Utilitaires</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Antivirus, pilotes, gravure...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Personnaliser\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Personnaliser son PC</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Ecrans de veille, th\350mes...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Programmation\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>D\351veloppement</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Cr\351ation de logiciels, BDD...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Jeux\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Jeux</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Action, simulation...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Internet\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Internet</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Utilitaires, email, FTP...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Loisirs\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Loisirs</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Humour, culture...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_Telecharg //--> \t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_AnnTelec --> <!-- - ZONE M2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE M3 -->\r\n<!-- - ZONE M3 -->\r\n<!-- + ZONE M4 -->\r\n<!-- - ZONE M4 -->\r\n<!-- + ZONE M5 -->\r\n<!-- - ZONE M5 -->\r\n<!-- -ZONE_Mn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t<tr>\r\n<!-- +ZONE_tn -->\r\n<!-- + ZONE t0 -->\r\n<!-- - ZONE t0 -->\r\n<!-- + ZONE t1 -->\r\n<!-- - ZONE t1 -->\r\n<!-- + ZONE t2 -->\r\n<!-- - ZONE t2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE t3 -->\r\n<!-- - ZONE t3 -->\r\n<!-- + ZONE t4 -->\r\n<!-- - ZONE t4 -->\r\n<!-- + ZONE t5 -->\r\n<!-- - ZONE t5 -->\r\n<!-- -ZONE_tn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td valign=top>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t<tr>\r\n<!-- +ZONE_dn -->\r\n<!-- + ZONE d0 -->\r\n<!-- - ZONE d0 -->\r\n<!-- + ZONE d1 -->\r\n<!-- - ZONE d1 -->\r\n<!-- + ZONE d2 -->\r\n<!-- - ZONE d2 -->\r\n<!-- + ZONE d3 -->\r\n<!-- - ZONE d3 -->\r\n<!-- + ZONE d4 -->\r\n<!-- - ZONE d4 -->\r\n<!-- + ZONE d5 -->\r\n<!-- - ZONE d5 -->\r\n<!-- + ZONE d6 -->\r\n<!-- - ZONE d6 -->\r\n<!-- + ZONE d7 -->\r\n<!-- - ZONE d7 -->\r\n<!-- + ZONE d8 -->\r\n<!-- - ZONE d8 -->\r\n<!-- + ZONE d9 -->\r\n<!-- - ZONE d9 -->\r\n<!-- -ZONE_dn -->\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t\t</table>\r\n<!-- FIN WORK -->\r\n\t\t</td>\r\n<!-- *********************************************************************FIN VENTRE********************************************************************************************************************************************** //-->\r\n\t\t<td rowspan=2 valign=top width=23 background=\"http://www.01net.com/img/v4/sep_verticale.gif\"><img src=\"http://www.01net.com/img/dot.gif\" width=23 height=1><br></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t\t<td colspan=2>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=100%>\r\n<!-- +ZONE_Bn -->\r\n<!-- + ZONE B0 -->\r\n<!-- - ZONE B0 -->\r\n<!-- + ZONE B1 -->\r\n<tr><!-- ********** DEBUT BLOC Home NosJournauxV4 //-->\r\n<td valign=top bgcolor=#FFFFFF>\r\n<img src=\"http://www.01net.com/img/ban/Ban_v4_jx.gif\"><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=15><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1>\r\n<a href=\"http://www.01net.com/rubrique/3339.html\"><img src=\"http://www.01net.com/img/journaux/01I-small.gif\" border=0 vspace=0 hspace=12 align=top></a>\r\n<a href=\"http://www.01net.com/rubrique/4051.html\"><img src=\"http://www.01net.com/img/journaux/DSI-small.gif\" border=0 vspace=0 hspace=12 align=top></a>\r\n<a href=\"http://www.01net.com/rubrique/3345.html\"><img src=\"http://www.01net.com/img/journaux/DIN-small.gif content: @ 1099872000000000: 'HTTP/1.1 200 OK\r\nX-Google-Crawl-Date: Mon, 08 Nov 2004 17:22:09 GMT\r\nContent-Type: text/html\r\nConnection: close\r\nX-Powered-By: PHP/4.3.8\r\nServer: Apache/1.3.31 (Unix) mod_gzip/1.3.19.1a PHP/4.3.8\r\nDate: Mon, 08 Nov 2004 17:19:07 GMT\r\n\r\n <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n<BASE target=\"_top\">\r\n\n<TITLE>Micro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux</TITLE>\r\n<META NAME=\"Description\" CONTENT=\"Micro Achat : Ordinateurs, PDA\">\r\n<META NAME=\"Keywords\" CONTENT=\"Micro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\">\r\n<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://www.01net.com/styles/01net.css\">\r\n<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://www.01net.com/styles/tableau_autre.css\">\r\n<STYLE type=text/css>\r\nA{TEXT-DECORATION: none;color:#000000;}\r\nA:visited{TEXT-DECORATION: none;color:#000000;}\r\n</STYLE>\r\n<SCRIPT LANGUAGE=\"JavaScript1.1\">\r\nvar sameAsBigDay = new Date();\r\nvar ord = (sameAsBigDay.getTime());\r\nvar pubsMotsCles = \"\";\r\nvar exc;\r\nvar lienhautdepage = \"\";\r\nvar etatmessage = false;\r\nvar enchainement = false;\r\nsas_tmstp=Math.round(Math.random()*10000000000);\r\nfunction SmartAdServer(sas_pageid,sas_formatid,sas_master,sas_target) {\r\n if ((sas_master!=\'M\')&&(sas_master!=\'S\')) {sas_master=\'S\'};\r\n document.write(\'<SCR\'+\'IPT SRC=\"http://www.smartadserver.com/call/pubj/\' + sas_pageid + \'/\' + sas_formatid + \'/\'+sas_master + \'/\' + sas_tmstp + \'/\' + escape(sas_target) + \'?\"></SCR\'+\'IPT>\');\r\n}\r\n</SCRIPT>\r\n<SCRIPT LANGUAGE=\"JAVASCRIPT\" SRC=\"http://www.01net.com/js/exc.js\"></SCRIPT>\r\n<script language=\"javascript\" src=\"http://telecharger.01net.com/shopping/js/headservicesV4.js\"></script>\r\n<noscript>\r\n<a href=\"http://cinema.01net.com\">T\351l\351charger des bandes-annonces, des teasers, des extraits et des making of de vos films cin\351ma pr\351f\351r\351s</a>,\r\n<a href=\"http://www.01net.com/BusinessTechnologies/\">Portail leader de l\'information sur les nouvelles technologies - Actualites et enquetes sur l\'informatique et les NTIC (nouvelles technologies de l\'information et la communication). Exemples de sujets : e-business, telecoms, CRM, VPN, 3G, DSL, fournisseurs d\'acces, Linux, piratage, securite informatique, progiciel...</a><br>\r\n<a href=\"http://www.01net.com/securite_informatique.html\">s\351curit\351 informatique</a>,\r\n<a href=\"http://www.01net.com/strategies_ntic.html\">strat\351gies NTIC</a>,\r\n<a href=\"http://www.01net.com/piratage_informatique.html\">piratage informatique</a>,\r\n<a href=\"http://www.01net.com/technologie_dsl.html\">technologie DSL</a>,\r\n<a href=\"http://www.01net.com/solutions_vpn.html\">solutions VPN</a>,\r\n<a href=\"http://www.01net.com/strategie_e-business.html\">strat\351gies</a>,\r\n<a href=\"http://www.01net.com/outils_crm.html\">outils CRM</a>,\r\n<a href=\"http://www.01net.com/logiciel_linux.html\">logiciel Linux</a>,\r\n<a href=\"http://www.01net.com/fournisseur_d_acces.html\">fournisseur d\'acc\350s</a>,\r\n<a href=\"http://www.01net.com/progiciel.html\">progiciel</a>,\r\n<a href=\"http://www.01net.com/stockage_de_donnees.html\">stockage de donn\351es</a>,\r\n<a href=\"http://www.01net.com/etudes_solution_informatique.html\">\351tudes solution informatique</a>,\r\n<a href=\"http://www.01net.com/NTIC.html\">NTIC</a>,\r\n<a href=\"http://www.01net.com/actualite_technologie.html\">actualit\351 technologie</a>,\r\n<a href=\"http://www.01net.com/etude_materiel_informatique.html\">\351tude mat\351riel informatique</a>,\r\n<a href=\"http://www.01net.com/actus/\">actualit\351s des nouvelles technologies</a>,\r\n<a href=\"http://www.01net.com/MicroPerso/\">enqu\352tes et trucs et astuces sur le mat\351riel informatique, les logiciels, les fournisseurs d\'acc\350s...</a>,\r\n<a href=\"http://www.01net.com/emploi/\">emploi et formations informatiques : offres d\'emploi informatique...</a>,\r\n<a href=\"http://www.01net.com/produits/\">fiches, tests mat\351riels et logiciels en informatique</a>,\r\n<a href=\"http://www.01net.com/01informatique\">01 Informatique</a>,\r\n<a href=\"http://www.caractere.net\">Caract\350re, le site des professionnels de l\'imprim\351 - communication imprim\351e, \351dition, emballage, encres, finition, flexographie, h\351liogravure, impression, imprimerie, imprimeur, industries graphiques, num\351rique, offset, papier, pr\351presse, presse, print, reprographie, s\351rigraphie, typographie</a>,\r\n<a href=\"http://www.01net.com/decisionmicro\">Decision Micro</a>,\r\n<a href=\"http://www.01net.com/decisioninformatique\">D\351cision Informatique</a>,\r\n<a href=\"http://www.01net.com/01reseaux\">01 R\351seaux</a>,\r\n<a href=\"http://logiciel.telecharger.01net.com/\">logiciel</a>,\r\n<a href=\"http://developpeur.telecharger.01net.com/windows/Programmation/\">d\351veloppeur programmation</a>,\r\n<a href=\"http://anti-virus.telecharger.01net.com\">anti-virus</a>,\r\n<a href=\"http://gravure-cd-dvd.telecharger.01net.com/windows/Utilitaire/gravure/\">gravure cd dvd</a>,\r\n<a href=\"http://codec.telecharger.01net.com/windows/Multimedia/encodeurs_et_decodeurs/\">codec encodeur d\351codeur</a>,\r\n<a href=\"http://software.telecharger.01net.com/\">software</a>,\r\n<a href=\"http://logiciels.telecharger.01net.com/\">logiciels</a>,\r\n<a href=\"http://gratuit.telecharger.01net.com/\">gratuit</a>,\r\n<a href=\"http://p2p.telecharger.01net.com/windows/Internet/partage/\">p2p peer to peer partage de fichiers</a>,\r\n<a href=\"http://securite.telecharger.01net.com/windows/Utilitaire/cryptage_et_securite/\">s\351curit\351</a>,\r\n<a href=\"http://compression-decompression.telecharger.01net.com/windows/Utilitaire/compression_et_decompression/\">compression et d\351compression</a>,\r\n<a href=\"http://divx.telecharger.01net.com/\">divx</a>,\r\n<a href=\"http://utilitaire.telecharger.01net.com/windows/Utilitaire/\">utilitaire</a>,\r\n<a href=\"http://jeux.telecharger.01net.com/windows/Jeux/\">jeux</a>,\r\n<a href=\"http://loisirs.telecharger.01net.com/windows/Loisirs/\">loisirs</a>,\r\n<a href=\"http://mac.telecharger.01net.com/mac/\">mac</a>,\r\n<a href=\"http://linux.telecharger.01net.com/linux/\">linux</a>,\r\n<a href=\"http://shareware.telecharger.01net.com/\">shareware</a>,\r\n<a href=\"http://video-dvd.telecharger.01net.com/windows/Multimedia/lecteurs_video_dvd/\">vid\351o dvd</a>,\r\n<a href=\"http://multimedia.telecharger.01net.com/\">multim\351dia</a>,\r\n<a href=\"http://traduction.telecharger.01net.com/windows/Bureautique/traducteur/\">traduction</a>,\r\n<a href=\"http://mp3.telecharger.01net.com/windows/Multimedia/lecteurs_audio_mp3_cd/\">mp3</a>,\r\n<a href=\"http://tchat.telecharger.01net.com/windows/Internet/communication/\">tchat</a>\r\n<a href=\"http://chat.telecharger.01net.com/windows/Internet/communication/\">chat</a>,\r\n<a href=\"http://musique.telecharger.01net.com/\">musique</a>,\r\n<a href=\"http://mobile.telecharger.01net.com/mobile/\">mobile</a>,\r\n<a href=\"http://telephone_portable.telecharger.01net.com/mobile/\">t\351l\351phone portable</a>,\r\n<a href=\"http://telephone_mobile.telecharger.01net.com/mobile/\">t\351l\351phone mobile</a>\r\n</noscript>\r\n</head>\r\n</head>\r\n<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#000000\" marginwidth=0 marginheight=0 topmargin=0 leftmargin=0>\r\n<!-- + ZONE TETE -->\r\n<!-- ********** DEBUT MODELE INTERNE TETES MHA-tetev4 //-->\r\n<table width=100% height=66 cellspacing=0 cellpadding=0 border=0 bgcolor=#ffffff>\r\n\t<tr>\r\n\t\t<td height=8 colspan=2><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=8></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td valign=bottom><a href=\"http://microachat.01net.com\"><img src=\"http://www.01net.com/img/v4/logos_tete/tet_gauche-mha.gif\" border=0></a></td>\r\n\t\t<td valign=bottom bgcolor=#FFFFFF bbackground=\"http://www.01net.com/img/v4/tet_droite.gif\" width=100% style=\"background-image:url(/img/v4/tet_droite-mha.gif);background-position:bottom;background-repeat:repeat-x\"><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=66 align=left hspace=0 vspace=0></td>\r\n\t</tr>\r\n</table>\r\n<table width=100% cellspacing=0 cellpadding=0 border=0 bgcolor=#ffffff>\r\n\t<tr>\r\n\t\t<td valign=top background=\"http://www.01net.com/img/v4/fond_date-mha.gif\" height=18 width=500><img src=\"http://www.01net.com/img/dot.gif\" width=500 height=1><br><img src=\"http://www.01net.com/img/dot.gif\" width=19 height=1><font face=\"Arial\" size=1 color=#666666 style=\"font-size: 11px;\"><b>Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004 | 16:45</b></font></td>\r\n\t\t<td width=100% background=\"http://www.01net.com/img/v4/fond_date2-mha.gif\" height=18></td>\r\n\t</tr>\r\n</table>\r\n<!-- ********** FIN MODELE INTERNE TETES MHA-tetev4 //--> <!-- - ZONE TETE -->\r\n<!-- ***************************************************************************************************************************************************************************************************************************** //-->\r\n<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n<!-- DEBUT PARTIE PUB //-->\r\n\t<tr>\r\n<td align=center valign=middle colspan=2 background=\"http://www.01net.com/img/v4/fond_bann.gif\"><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br>\r\n<!-- + ZONE Z0 -->\r\n<SCRIPT LANGUAGE=\"JAVASCRIPT\">\r\nvar fa = \"\";\r\nvar fab = document.URL.toString();\r\nif (fab.indexOf(\"?fa\") != -1 || fab.indexOf(\"&fa\") != -1)\r\n{\r\nfa = \";!category=fai\";\r\n}\r\nvar etatmessage = false;\r\nvar enchainement = false;\r\n</SCRIPT>\r\n<SCRIPT LANGUAGE=\"JavaScript1.1\">\r\nsas_pageid=\'167/3872\';\r\nsas_formatid=95;\t\t\t// Format : Banner/Scope 468x60\r\nsas_master=\'M\';\t\t\t// Master : M=master or S=slave\r\nsas_target=exc + \'rubrique\';\t\t\t// Targeting\r\nSmartAdServer(sas_pageid,sas_formatid,sas_master,sas_target);\r\n</SCRIPT>\r\n <!-- - ZONE Z0 --></td>\r\n\t\t<td valign=top width=23 background=\"http://www.01net.com/img/v4/sep_verticale.gif\" ><img src=\"http://www.01net.com/img/dot.gif\" width=23 height=1><br></td>\r\n<td valign=top width=100% bgcolor=\"ffffff\" rowspan=3><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=125><br>\r\n<!-- +ZONE_Dn -->\r\n<!-- + ZONE D0 -->\r\n<!-- DEBUT MA_ColD -->\r\n<div style=\"background-color : #ffffff; width : 150px; padding-left : 5px; padding-right : 5px; font-family : Arial, Helvetica;\">\n\t\t\t\t\t<table style=\"border-spacing : 0; width : 146px; margin-top : 0px;\" cellspacing=\"0\">\n\t\t\t\t\t<tr><th colspan=\"2\" style=\"padding : 0;\"><img src=\"http://micro-achat.01net.com/img/utils/micro-achat/tete-produitsrecherches.gif\" alt=\"\" /></th></tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Imagerie </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/12537-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/imagerie/moniteurs-lcd/l1720b/\">LG L1720B</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">332.89 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Ordinateurs </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/4043-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/desktops/veriton-7600g/\">Acer Veriton 7600G</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">705 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Ordinateurs </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/1903-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/sn95g5/\">Shuttle SN95G5</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">375 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Composants </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/1259-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/composants/cartes-meres/a7n8x-e-deluxe/\">Asus A7N8X-E Deluxe</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">91.99 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Composants </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/4687-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/composants/ventilateur/sp-94/\">Thermalright SP-94</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">49 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr></table>\n\t\t\t\t<table style=\"border-spacing : 0px 1px; width : 146px; margin-top : 15px;\" cellspacing=\"0\">\n\t\t\t\t<tr><th colspan=\"2\" style=\"padding : 0;\"><img src=\"http://micro-achat.01net.com/img/utils/micro-achat/tete-revendeurmisajour.gif\" alt=\"\" /></th></tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">1 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Rhone-Alpes/Ain/pc-look\" style=\"color : #000000; text-decoration : none;\">PC Look</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">2 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Nord-Pas-de-Calais/Pas-de-Calais/atelier-informatique\" style=\"color : #000000; text-decoration : none;\">Atelier Informatique</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">3 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Val-de-Marne/zanax-multimedia\" style=\"color : #000000; text-decoration : none;\">Zanax Multim\351dia</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">4 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Hauts-de-Seine/misteroops\" style=\"color : #000000; text-decoration : none;\">MISTEROOPS</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">5 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/12/168-golden-avenue\" style=\"color : #000000; text-decoration : none;\">168 Golden Avenue</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">6 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Seine-Saint-Denis/microchoix\" style=\"color : #000000; text-decoration : none;\">microchoix</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">7 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/12/e-soph\" style=\"color : #000000; text-decoration : none;\">e-Soph</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">8 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/13/pc-price-club\" style=\"color : #000000; text-decoration : none;\">PC Price Club</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">9 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Seine-et-Marne/pc-77\" style=\"color : #000000; text-decoration : none;\">PC 77</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">10 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Alsace/Bas-Rhin/web-in-informatique\" style=\"color : #000000; text-decoration : none;\">Web In Informatique</a></td>\n\t\t\t\t</tr></table>\n\t\t\t\t</div>\n\t\t\t\t<br>\r\n<!-- FIN MA_ColD --> <!-- - ZONE D0 -->\r\n<!-- + ZONE D1 -->\r\n<!-- - ZONE D1 -->\r\n<!-- + ZONE D2 -->\r\n<!-- - ZONE D2 -->\r\n<!-- -ZONE_Dn -->\r\n</td>\r\n\t</tr>\r\n<!-- FIN PARTIE PUB //-->\r\n\t<tr>\r\n\t\t<td valign=top width=193 height=100% background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n\t\t<!-- contenu colonne de gauche //-->\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0 background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n<!-- +ZONE_Gn -->\r\n<!-- + ZONE G0 -->\r\n<tr><!-- ********** DEBUT MHA_MenusChainesV4 //-->\r\n<td valign=top>\n<table border=0 cellpadding=0 cellspacing=0 width=193 bgcolor=#FFFFFF>\n<tr>\n<td background=\"/img/v4/menus/motifgauche_menus.gif\" width=20 rowspan=2><img src=\"/img/dot.gif\" width=20 height=20></td>\n<td width=173 colspan=2 bgcolor=#FFFFFF><img src=\"/img/dot.gif\" width=173 height=20></td>\n</tr>\n<tr>\n<td valign=top width=159>\n\n<a href=\"http://www.01net.com\"><img src=\"/img/v4/menus/mha/home01net-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com\"><img src=\"/img/v4/menus/mha/home-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4317.html\"><img src=\"/img/v4/menus/mha/ordinateurs-2.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4318.html\"><img src=\"/img/v4/menus/mha/composants-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4319.html\"><img src=\"/img/v4/menus/mha/stockage-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4320.html\"><img src=\"/img/v4/menus/mha/image-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4321.html\"><img src=\"/img/v4/menus/mha/peripheriques-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4322.html\"><img src=\"/img/v4/menus/mha/reseaux-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4323.html\"><img src=\"/img/v4/menus/mha/accessoires-1.gif\" width=159 border=0></a><br>\n<a href=\"http://micro-achat.01net.com/guide-produits/\"><img src=\"/img/v4/menus/mha/comparateur-1.gif\" width=159 border=0></a><br>\n<a href=\"http://micro-achat.01net.com/annuaire/\"><img src=\"/img/v4/menus/mha/annuaire-1.gif\" width=159 border=0></a><br></td>\n<td width=14><img src=\"/img/dot.gif\" width=14 height=14></td>\n</tr>\n<tr>\n<td colspan=3><img src=\"/img/v4/menus/bas_menus.gif\" width=193 height=31></td>\n</tr>\n</table></td><!-- ********** FIN MHA_MenusChainesV4 //--> </tr><!-- - ZONE G0 -->\r\n<!-- + ZONE G1 -->\r\n<tr><!-- DEBUT MODELE RUBRIQUE V4ColGaucheMHA //-->\r\n<!-- ********** DEBUT BLOC DernieresNewsTC //-->\r\n<td valign=top>\r\n<!-- DEBUT RECHERCHE MHA -->\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n\t\t\t<td valign=top background=\"http://microachat.01net.com/img/v4/fond_rech_mha.gif\" height=98 style=\"background-repeat:no-repeat;\"><form method=\"get\" name=\"chercher\" action=\"http://www.01net.com/aiguillage_recherche/1,6138,,00.html\"><img src=\"http://microachat.01net.com/img/dot.gif\" width=193 height=17><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><input type=\"text\" name=\"fullText\" style=\"width:130px;font:12px;\"><br><img src=\"http://microachat.01net.com/img/dot.gif\" width=1 height=6><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><select name=\"sousArbo\" style=\"width:130px;font:12px;\">\r\n\t\t\t<option value=\"mha\">dans Micro Achat\r\n\t\t\t<option value=\"cmp\">les prix\r\n\t\t\t<option value=\"ann\">les revendeurs\r\n\t\t\t<option value=\"2641\">tout 01net.\r\n\t\t\t<option value=\"emploi\">les offres d\'emploi\r\n\t\t\t<option value=\"telecharger\"> telecharger.com\r\n\t\t\t<option value=\"web\">le web\r\n\t\t\t</select><br><img src=\"http://microachat.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"http://microachat.01net.com/img/v4/ok_bloc_recher_mha.gif\" border=\"0\"></form>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=10 vspace=0>\r\n<!-- FIN RECHERCHE MHA -->\r\n <!-- modele TCFilColgTitV4 //-->\r\n <table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top>\r\n\t\t<table width=155 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=2><img src=\"http://www.01net.com/img/ban/Ban_v4_DernieresNews01net.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4></td>\r\n\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/256059.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">CD et DVD bient\364t insensibles aux rayures<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/255796.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">OpenOffice gagne son service<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/255731.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">La messagerie en cinq minutes selon Ipswitch<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top colspan=2><A HREF=\"http://www.01net.com/actus/\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\">> toutes les news<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td colspan=2><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/crochet_bleuhaut_155.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20> <!-- ********** FIN BLOC DernieresNewsTC //-->\r\n<!-- ********** DEBUT BLOC NL_MHA //-->\r\n<SCRIPT language=\"javascript\" src=\"http://www.01net.com/js/lib.js\"></SCRIPT>\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<FORM name=\"formgen\" method=\"get\" action=\"http://microachat.01net.com/outils/newsletter_MicroAchat.html\" onSubmit=\"return validateForm(this)\">\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=155 colspan=4><img src=\"http://www.01net.com/img/ban/Ban_V4_Newslett.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=10><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=1 bgcolor=#CC0000><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t<td width=153>\r\n\t\t<table width=153 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=10><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t\t\t<td valign=top><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefinefd_ffffff.gif\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Recevez chaque jour l\'actualit\351 des produits et des promos<br></font>\r\n\t\t\t\t<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><input type=\"text\" name=\"email\" size=\"14\" style=\"width:130px;font:12px;\" value=\"entrez votre e-mail\" onFocus=\"javascript:document.formgen.email.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"http://www.01net.com/img/v4/ok_bloc_recher.gif\" border=\"0\"></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td width=1 bgcolor=#CC0000><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=155 colspan=4><img src=\"http://www.01net.com/img/v4/base_newsletters.gif\"></td>\r\n\t\t</FORM>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20>\r\n<SCRIPT language=\"Javascript\">\r\ndocument.formgen.email.validator= \'notNullEmailPat\';\r\ndocument.formgen.email.nomvalidator= \'E-mail\';\r\n</SCRIPT>\r\n<!-- ********** FIN BLOC NL_MHA //-->\r\n</td>\r\n</tr>\r\n<tr>\r\n<!-- ********** DEBUT BLOC Actus ActusUneV4 //-->\r\n<td valign=top background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n<table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top>\r\n\t\t<table width=155 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/ban/Ban_v4_LaUne.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/entreprise/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Entreprise</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://www.01net.com/article/255737.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">Quand le billet papier s\'envole vers la d\351mat\351rialisation</font></a></td>\r\n\t\t\t\t<td valign=top width=2><img src=\"http://www.01net.com/img/dot.gif\" width=2 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/article/255737.html\"><img src=\"http://www.01net.com/img/MEA_v4/billet_virtuel-65.jpg\" border=0></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/pratique/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Trucs et astuces</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255698.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">D\351pannez Windows XP</font></a></td>\r\n\t\t\t\t<td valign=top width=2><img src=\"http://www.01net.com/img/dot.gif\" width=2 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/article/255698.html\"><img src=\"http://www.01net.com/img/MEA_v4/depannez_XP-65.jpg\" border=0 ></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t</tr>\r\n\t\t <tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top colspan=3><a href=\"http://www.01net.com/conso/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Conso</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255524.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">Vos photos sur papier imprimante ou labo ?<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t<!-- exemple de lien avec pseudorub pour produits et tests -->\r\n\t\t<!-- <a href=\"/outils/PseudoRub.php?base=test-comp&rub=1730&pseudo=test-comp20041005\"> -->\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top colspan=3><a href=\"http://www.01net.com/produits/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Produits & Tests</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255782.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">5 programmes d\222encodage vid\351o gratuits<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20>\r\n</td>\r\n<!-- ********** FIN BLOC Actus ActusUneV4 //--> </tr>\r\n<tr>\r\n<td>\r\n<table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top><a href=\"mailto:s.cohen@micro-achat.fr\"><img border=0 src=\"http://www.01net.com/img/v4/espace-revendeurs.gif\"></td>\r\n\t</tr>\r\n</table>\r\n<br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20></td>\r\n<!-- FIN MODELE RUBRIQUE V4ColGaucheMHA //--> </tr><!-- - ZONE G1 -->\r\n<!-- + ZONE G2 -->\r\n<!-- - ZONE G2 -->\r\n<!-- + ZONE G3 -->\r\n<!-- - ZONE G3 -->\r\n<!-- + ZONE G4 -->\r\n<!-- - ZONE G4 -->\r\n<!-- + ZONE G5 -->\r\n<!-- - ZONE G5 -->\r\n<!-- + ZONE G6 -->\r\n<!-- - ZONE G6 -->\r\n<!-- + ZONE G7 -->\r\n<!-- - ZONE G7 -->\r\n<!-- + ZONE G8 -->\r\n<!-- - ZONE G8 -->\r\n<!-- + ZONE G9 -->\r\n<!-- - ZONE G9 -->\r\n<!-- + ZONE GA -->\r\n<!-- - ZONE GA -->\r\n<!-- + ZONE GB -->\r\n<!-- - ZONE GB -->\r\n<!-- + ZONE GC -->\r\n<!-- - ZONE GC -->\r\n<!-- + ZONE GD -->\r\n<!-- - ZONE GD -->\r\n<!-- + ZONE GE -->\r\n<!-- - ZONE GE -->\r\n<!-- + ZONE GF -->\r\n<!-- - ZONE GF -->\r\n<!-- -ZONE_Gn -->\r\n\t\t</table>\r\n\t\t<!-- fin contenu colonne de gauche //-->\r\n\t\t</td>\r\n<!-- ***************************************************************** DEBUT VENTRE*********************************************************************************************************************************************** //-->\r\n<!-- DEBUT WORK -->\r\n\t\t<td valign=top width=625 bgcolor=#ffffff><img src=\"http://www.01net.com/img/dot.gif\" width=625 height=1><br>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_hn -->\r\n<!-- + ZONE h0 -->\r\n<!-- MA_ban_int -->\r\n<td valign=\"top\">\r\n<img src=\"/img/dot.gif\" height=\"18\"><br>\r\n<!-- pour ordipda -->\r\n<table width=\"625\" cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"/img/v4/MA/Ban_MA_ordis.gif\"></td>\r\n\t</tr>\r\n</table>\r\n\t</td>\r\n<!-- /MA_ban_int --> <!-- - ZONE h0 -->\r\n<!-- + ZONE h1 -->\r\n<!-- - ZONE h1 -->\r\n<!-- + ZONE h2 -->\r\n<!-- - ZONE h2 -->\r\n<!-- -ZONE_hn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_Hn -->\r\n<!-- + ZONE H0 -->\r\n<!-- Ma_int_Leader -->\r\n <td valign=top>\r\n<img src=\"/img/dot.gif\" width=1 height=18><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=320>\r\n<tr>\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<td width=144 valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=143 height=1 vspace=0><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:11px;>Portable</font><br>\r\n<A HREF=\"/article/256198.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=font-size:14px;><b>Un nouvel ultra portable r\351alis\351 par Nec</b></font></a><br>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/256198.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67509.jpg.res_100-100.jpg\" border=0 hspace=0 vspace=0></a><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n<font face=arial,helvetica size=2 color=#000000 style=font-size:12px;><img src=\"/img/v4/flechefine_fondtransp.gif\">Le Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.</font><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:12px;>\340 partir de 1663 \200</font>\r\n</td>\r\n<td width=17 background=\"/img/v4/MA/v4-fond-sep-mea-leader.gif\"><img src=\"/img/dot.gif\" width=17 height=1></td>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<td width=144 valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=143 height=1 vspace=0><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:11px;>Portable</font><br>\r\n<A HREF=\"/article/255194.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=font-size:14px;><b>Asus pr\351sente trois petits nouveaux dans la gamme A3N</b></font></a><br>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255194.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67168.jpg.res_100-100.jpg\" border=0 hspace=0 vspace=0></a><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n<font face=arial,helvetica size=2 color=#000000 style=font-size:12px;><img src=\"/img/v4/flechefine_fondtransp.gif\">Ces trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.</font><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:12px;>\340 partir de 1346 \200</font>\r\n</td>\r\n<td width=15><img src=\"/img/dot.gif\" width=15 height=1></td>\r\n\t\t\t\t</tr>\r\n</table>\r\n</td>\r\n<!-- /Ma_int_Leader --> <!-- - ZONE H0 -->\r\n<!-- + ZONE H1 -->\r\n<!-- - ZONE H1 -->\r\n<!-- + ZONE H2 -->\r\n<!-- MA_BP_MP -->\r\n<td valign=\"top\" width=\"100%\">\r\n\t<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n\t<tr>\r\n\t<td width=\"50%\" valign=\"top\">\r\n\t<!-- DEBUT MicroAchat MA_BonPlan -->\r\n<td valign=top>\r\n<img src=\"/img/dot.gif\" width=1 height=18><br>\r\n<table border=0 cellpadding=1 cellspacing=0 width=145 bgcolor=#CC0000>\r\n<tr>\r\n<td align=center><font face=arial,helvetica size=1 color=#FFFFFF style=\"font-size:11px;\">BON PLAN</a></font></td>\r\n</tr>\r\n<tr>\r\n<td width=145>\r\n<div style=\"padding:5px;padding-left:5px;padding-fight:5px;margin:0px;margin-left:1px;margin-right:1px;background-color:#FFFFFF;\">\r\n<img src=\"/img/microachat/logo_shuttle_SB83G5.gif\" border=0><br>\r\n<font face=arial,helvetica size=2 color=#CC0000 style=\"font-size:12px;\">Les derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.<br></font>\r\n<center><a href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/sb83g5/?fabriquant=1&page=1&tri=titre\"><img src=\"/img/microachat/mea_shuttle_SB83G5.gif\" border=0 vspace=5></a><br></center>\r\n<center>\r\n<font face=arial,helvetica size=2 color=#CC0000 style=\"font-size:13px;\"><b>\340 partir de</b><br>\r\n<div style=\"border:solid 2px #CC0000;width:100px;background-color:#FFCC00;\"><b>415 \200</b></div>\r\n</center>\r\n</div>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td align=center><font face=arial,helvetica size=1 color=#FFFFFF style=\"font-size:11px;\">publicit\351</a></font></td>\r\n</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_BonPlan --> \t</td>\r\n\t<td width=\"15\"><img src=\"/img/dot.gif\" width=\"15\"></td>\r\n\t<td width=\"50%\" valign=\"top\">\r\n\t<!-- DEBUT MicroAchat MA_MeillPrixAct //-->\r\n<td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=145 height=1><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=18><br>\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<FORM name=\"prix\" action=\"http://www.micro-achat.01net.com/guide-produits/recherche.php\" method=\"post\">\r\n\t\t<td width=145 colspan=3><img src=\"http://www.01net.com/img/ban/Ban_v4_MeillPrix_MA.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=1 bgcolor=#FFCC00><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t<td width=143>\r\n\t\t<table width=143 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=6><img src=\"http://www.01net.com/img/dot.gif\" width=6 height=1></td>\r\n\t\t\t\t<td valign=top><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=15><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"http://www.01net.com/img/ban/Ban_MA_trouv_ordi.gif\"><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/desktops/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Desktops</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/portables/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Portables</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Mini-PC</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/pda---tablets-pc/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Pda / Tablets-PC</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/apple/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Apple</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/gps/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">GPS</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20><br>\r\n\t\t\t\t\t\t\t\t<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><input type=\"text\" name=\"recherchedirecte\" size=\"14\" style=\"width:130px;font:12px;\" value=\" recherche directe\" onFocus=\"javascript:document.prix.recherchedirecte.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"/img/v4/MA/ok_bloc_recher_MA.gif\" border=\"0\"></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td width=1 bgcolor=#FFCC00><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=145 colspan=3><img src=\"http://www.01net.com/img/v4/MA/base_meillPrix.gif\"></td>\r\n\t\t</FORM>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_MeillPrixAct //--> \t</td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n<!-- /MA_BP_MP --> <!-- - ZONE H2 -->\r\n<!-- -ZONE_Hn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_Tn -->\r\n<!-- + ZONE T0 -->\r\n <td valign=\"top\">\r\n<img src=\"http://www.01net.com/img/dot.gif\" height=13><br>\r\n<table border=0 width=320 cellpadding=0 cellspacing=0>\r\n<tr>\r\n<td width=305><img src=\"http://www.01net.com/img/ban/Ban_v4_DernNews_MA.gif\"><br><img src=\"http://www.01net.com/img/v4/MA/v4-tiret-hauts-mha.gif\"></td>\r\n<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n</tr>\r\n<tr>\r\n<td bgcolor=\"#FEF9E0\">\r\n\t<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Portable <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255149.html\" style=\"color:#000000;text-decoration:none;\">Toshiba consacre deux gammes de machines au multim\351dia</a></b><br>\r\n\t<font color=\"#000000\">Equipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Ordinateur <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254686.html\" style=\"color:#000000;text-decoration:none;\">Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme</a></b><br>\r\n\t<font color=\"#000000\">La firme \340 la pomme propose une station de travail \351volutive et relativement abordable.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>PC <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254549.html\" style=\"color:#000000;text-decoration:none;\">Alienware propose deux machines au look \351trange</a></b><br>\r\n\t<font color=\"#000000\">Aurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Portable <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254501.html\" style=\"color:#000000;text-decoration:none;\">Trois nouveaux iBook G4 chez Apple</a></b><br>\r\n\t<font color=\"#000000\">Chez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=10></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-red-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td align=\"right\">\r\n\t\t\t\t<A HREF=\"http://microachat.01net.com/rubrique/4365.html\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 10px;\">> toutes les news</font></a>\r\n\t\t\t</td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n</td> <!-- - ZONE T0 -->\r\n<!-- + ZONE T1 -->\r\n<!-- Ma_derpromo -->\r\n <td valign=\"top\">\r\n<img src=\"/img/dot.gif\" height=13><br>\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td bgcolor=\"#ffffff\"><img src=\"/img/v4/MA/v4-lespromos-mha.gif\"><br><img src=\"/img/v4/MA/v4-tiret-hauts-mha.gif\"></td>\r\n</tr>\r\n</table>\r\n<!-- DEBUT MODELE D\'AFFICHAGE POUR LES n PREMIERS ARTICLES //-->\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255806.html\" class=\"nodeco\"><img src=\"/images/67462.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255806.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>Asus A3N15-C Pro</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>1170 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255688.html\" class=\"nodeco\"><img src=\"/images/67381.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255688.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>Soltek EQ3702A Miroir</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>559 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255513.html\" class=\"nodeco\"><img src=\"/images/67319.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255513.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>IBM ThinkPad R51</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Voici un portable complet et pourtant relativement l\351ger.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>1299 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t\t<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td><img src=\"http://www.01net.com/img/dot.gif\" height=10></td>\r\n</tr>\r\n<tr>\r\n<td background=\"/img/v4/MA/v4-sep-red-mha.gif\"><img src=\"/img/dot.gif\" height=1></td>\r\n</tr>\r\n<tr>\r\n<td align=\"right\" valign=\"top\">\r\n\t\t\t\t<A HREF=\"http://microachat.01net.com/rubrique/4366.html\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 10px;\">> toutes les promos</font></a>\r\n\t\t</td>\r\n</tr>\r\n</table>\r\n</td>\r\n<!-- /Ma_derpromo --> <!-- - ZONE T1 -->\r\n<!-- + ZONE T2 -->\r\n<!-- - ZONE T2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE T3 -->\r\n<!-- DEBUT MicroAchat MA_PubG -->\r\n<td valign=top align=center>\r\n<table border=0 width=320 cellpadding=0 cellspacing=0>\r\n\t<tr>\r\n\t\t<td width=305><img src=\"/img/dot.gif\" width=1 height=12><br><a href=\"http://www.smartadserver.com/call/cliccommand/45590/[timestamp]?\" target=_blank><img src=\"/img/microachat/Bandeau_FX6021.jpg\" border=0></a></td>\r\n\t\t<td><img src=\"/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_PubG --> <!-- - ZONE T3 -->\r\n<!-- + ZONE T4 -->\r\n<!-- DEBUT MicroAchat MA_PubD -->\r\n<td valign=top align=center>\r\n<table border=0 width=305 cellpadding=0 cellspacing=0>\r\n\t<tr>\r\n\t\t<td width=305><img src=\"/img/dot.gif\" width=1 height=12><br><a href=\"http://www.smartadserver.com/call/cliccommand/45591/[timestamp]?\" target=_blank><img src=\"/img/microachat/twc_305x125.jpg\" border=0></a></td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_PubD --> <!-- - ZONE T4 -->\r\n<!-- + ZONE T5 -->\r\n<!-- - ZONE T5 -->\r\n<!-- -ZONE_Tn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n\t\t\t<td valign=top>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n<!-- +ZONE_gn -->\r\n<!-- + ZONE g0 -->\r\n<!-- - ZONE g0 -->\r\n<!-- + ZONE g1 -->\r\n<!-- - ZONE g1 -->\r\n<!-- + ZONE g2 -->\r\n<!-- - ZONE g2 -->\r\n<!-- + ZONE g3 -->\r\n<!-- - ZONE g3 -->\r\n<!-- + ZONE g4 -->\r\n<!-- - ZONE g4 -->\r\n<!-- + ZONE g5 -->\r\n<!-- - ZONE g5 -->\r\n<!-- + ZONE g6 -->\r\n<!-- - ZONE g6 -->\r\n<!-- + ZONE g7 -->\r\n<!-- - ZONE g7 -->\r\n<!-- + ZONE g8 -->\r\n<!-- - ZONE g8 -->\r\n<!-- + ZONE g9 -->\r\n<!-- - ZONE g9 -->\r\n<!-- -ZONE_gn -->\r\n\t\t\t</table>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t\t\t<tr>\r\n<!-- +ZONE_Mn -->\r\n<!-- + ZONE M0 -->\r\n<!-- modele Ma_GuideAch //-->\r\n <td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" height=13><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t<tr>\r\n\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_GuideAchat_MA.gif\" vspace=1></td>\r\n\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<div style=\"border:solid 1px #FFCC00;width:100%\">\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<center>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"http://microachat.01net.com/article/254561.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67088.jpg.res_121-111.jpg\" border=0 hspace=0 vspace=0></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n</center>\r\n<div style=\"padding:5px;\">\r\n<a href=\"http://microachat.01net.com/article/254561.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\"><b>Les graveurs de DVD</b><br></font></a>\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">Quel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.</font></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n</td> <!-- - ZONE M0 -->\r\n<!-- + ZONE M1 -->\r\n<!-- modele Ma_DirectLab //-->\r\n <td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t<tr>\r\n\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_DirectLab_MA.gif\" vspace=1></td>\r\n\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<div style=\"border:solid 1px #FFCC00;width:100%\">\r\n\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255744.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>Kodak EasyShare Printer Dock Plus :</b>\r\n\t\t\t\t\t\tvos photos 10 x 15 cm en 60 secondes</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255780.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>3DMark05 :</b>\r\n\t\t\t\t\t\tun labo 3D \340 domicile</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255691.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>DVDInfoPro 2.6</b>\r\n\t\t\t\t\t\treconna\356t CD et DVD</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255722.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>Scaleo PA D3008, de Fujitsu-Siemens :</b>\r\n\t\t\t\t\t\tune impression d\'inachev\351</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255514.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">Carbon 5 Go : 2 500 chansons dans le creux de la main</font></a></div>\r\n\t\t\t</div></td>\r\n\t</tr>\r\n</table>\r\n</td> <!-- - ZONE M1 -->\r\n<!-- + ZONE M2 -->\r\n<!-- DEBUT MicroAchat MA_AnnTelec -->\r\n<td valign=top>\r\n<script type=\"text/javascript\">\r\nfunction regionChange()\r\n{\r\ndocument.selection.departement.options.length=0;\r\nswitch(document.selection.region.value)\r\n\t{\r\n\t\tcase \"aucun\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Nord-Pas-de-Calais\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pas-de-Calais\", \"Pas-de-Calais\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Nord\", \"Nord\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Haute-Normandie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Eure\", \"Eure\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-Maritime\", \"Seine-Maritime\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Basse-Normandie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Manche\", \"Manche\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Calvados\", \"Calvados\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Orne\", \"Orne\");\r\n\t\tbreak;\r\n\t\tcase \"Picardie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Somme\", \"Somme\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Oise\", \"Oise\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aisne\", \"Aisne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Bretagne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Finistere\", \"Finistere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cotes-dArmor\", \"Cotes-dArmor\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Morbihan\", \"Morbihan\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ille-et-Vilaine\", \"Ille-et-Vilaine\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Pays-de-Loire\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loire-Atlantique\", \"Loire-Atlantique\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vendee\", \"Vendee\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Maine-et-Loire\", \"Maine-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Mayenne\", \"Mayenne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Sarthe\", \"Sarthe\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Centre\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Eure-et-Loir\", \"Eure-et-Loir\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loiret\", \"Loiret\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loir-et-Cher\", \"Loir-et-Cher\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Indre-et-Loire\", \"Indre-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Indre\", \"Indre\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cher\", \"Cher\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Ile-de-France\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Val-dOise\", \"Val-dOise\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Yvelines\", \"Yvelines\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Essonne\", \"Essonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-et-Marne\", \"Seine-et-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hauts-de-Seine\", \"Hauts-de-Seine\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-Saint-Denis\", \"Seine-Saint-Denis\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Val-de-Marne\", \"Val-de-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Paris\", \"Paris\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Champagnes-Ardennes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ardennes\", \"Ardennes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Marne\", \"Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aube\", \"Aube\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Marne\", \"Haute-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Lorraine\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vosges\", \"Vosges\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Meurthe-et-Moselle\", \"Meurthe-et-Moselle\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Meuse\", \"Meuse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Moselle\", \"Moselle\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Alsace\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Bas-Rhin\", \"Bas-Rhin\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haut-Rhin\", \"Haut-Rhin\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Franche-Compte\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Jura\", \"Jura\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Doubs\", \"Doubs\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Saone\", \"Haute-Saone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Territoire-de-Belfort\", \"Territoire-de-Belfort\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Bourgogne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Yonne\", \"Yonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Nievre\", \"Nievre\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cote-dOr\", \"Cote-dOr\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Saone-et-Loire\", \"Saone-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Poitou-Charentes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Deux-Sevres\", \"Deux-Sevres\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Charente-Maritime\", \"Charente-Maritime\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Charente\", \"Charente\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vienne\", \"Vienne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Limousin\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Vienne\", \"Haute-Vienne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Correze\", \"Correze\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Creuse\", \"Creuse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Auvergne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Allier\", \"Allier\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Puy-de-Dome\", \"Puy-de-Dome\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cantal\", \"Cantal\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Loire\", \"Haute-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Rhone-Alpes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loire\", \"Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Rhone\", \"Rhone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ain\", \"Ain\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ardeche\", \"Ardeche\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Drome\", \"Drome\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Isere\", \"Isere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Savoie\", \"Savoie\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Savoie\", \"Haute-Savoie\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Aquitaine\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gironde\", \"Gironde\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Landes\", \"Landes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pyrenees-Atlantiques\", \"Pyrenees-Atlantiques\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lot-et-Garonne\", \"Lot-et-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Dordogne\", \"Dordogne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Midi-Pyrenees\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lot\", \"Lot\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Tarn-et-Garonne\", \"Tarn-et-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gers\", \"Gers\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hautes-Pyrenees\", \"Hautes-Pyrenees\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Garonne\", \"Haute-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ariege\", \"Ariege\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Tarn\", \"Tarn\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aveyron\", \"Aveyron\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Languedoc-Roussillon\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pyrenees-Orientales\", \"Pyrenees-Orientales\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aude\", \"Aude\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Herault\", \"Herault\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gard\", \"Gard\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lozere\", \"Lozere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Provence-Alpes-Cote-dazur\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Bouches-du-Rhone\", \"Bouches-du-Rhone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vaucluse\", \"Vaucluse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Alpes-de-haute-Provence\", \"Alpes-de-haute-Provence\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hautes-Alpes\", \"Hautes-Alpes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Var\", \"Var\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Alpes-Maritimes\", \"Alpes-Maritimes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Corse\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Corse-du-Sud\", \"Corse-du-Sud\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Corse\", \"Haute-Corse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"DomTom\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Guadeloupe\", \"Guadeloupe\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Guyane\", \"Guyane\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"La-Reunion\", \"La-Reunion\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Martinique\", \"Martinique\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Mayotte\", \"Mayotte\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"St-Pierre-et-Miquelon\", \"St-Pierre-et-Miquelon\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t}\r\n}\r\nfunction deptChange()\r\n{\r\nif (document.selection.departement.value == \'Paris\')\r\n\tdocument.getElementById(\'arrondissement\').style.display = \'inline\';\r\nelse\r\n\tdocument.getElementById(\'arrondissement\').style.display = \'none\';\r\n}\r\n</script>\r\n<table width=305 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td valign=top>\r\n\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_AnnuaiRev_MA.gif\" vspace=1></td>\r\n\t\t\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr><form action=\"http://micro-achat.01net.com/annuaire/recherche.php\" method=\"post\" name=\"selection\">\r\n\t\t\t\t<td bgcolor=#FFFFDD>\r\n\t\t\t\t<div style=\"border:solid 1px #FFCC00;width:100%\"><div style=\"padding:2px;\"><img src=\"http://www.01net.com/img/v4/MA/carte_revend.gif\"><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Choisir une r\351gion</b><br></font>\r\n<select name=\"region\" onChange=\"regionChange()\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"aucun\">-------------</option>\r\n<option value=\"Nord-Pas-de-Calais\">Nord-Pas-de-Calais</option>\r\n<option value=\"Haute-Normandie\">Haute-Normandie</option>\r\n<option value=\"Basse-Normandie\">Basse-Normandie</option>\r\n<option value=\"Picardie\">Picardie</option>\r\n<option value=\"Bretagne\">Bretagne</option>\r\n<option value=\"Pays-de-Loire\">Pays-de-Loire</option>\r\n<option value=\"Centre\">Centre</option>\r\n<option value=\"Ile-de-France\">Ile-de-France</option>\r\n<option value=\"Champagnes-Ardennes\">Champagne ardennes</option>\r\n<option value=\"Lorraine\">Lorraine</option>\r\n<option value=\"Alsace\">Alsace</option>\r\n<option value=\"Franche-Compte\">Franche-Compte</option>\r\n<option value=\"Bourgogne\">Bourgogne</option>\r\n<option value=\"Poitou-Charentes\">Poitou-Charentes</option>\r\n<option value=\"Limousin\">Limousin</option>\r\n<option value=\"Auvergne\">Auvergne</option>\r\n<option value=\"Rhone-Alpes\">Rhone-Alpes</option>\r\n<option value=\"Aquitaine\">Aquitaine</option>\r\n<option value=\"Midi-Pyrenees\">Midi-Pyrenees</option>\r\n<option value=\"Languedoc-Roussillon\">Languedoc roussillon</option>\r\n<option value=\"Provence-Alpes-Cote-dazur\">PACA</option>\r\n<option value=\"Corse\">Corse</option>\r\n<option value=\"DomTom\">DomTom</option>\r\n</select>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Un d\351partement</b><br></font>\r\n<select name=\"departement\" onChange=\"deptChange()\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"aucun\">-------------</option>\r\n</select>\r\n<div id=\"arrondissement\" style=\"display : none;\">\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Un arrondissement</b><br></font>\r\n<select name=\"arrondissement\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"0\">-------------</option>\r\n<option value=\"1\">I</option>\r\n<option value=\"2\">II</option>\r\n<option value=\"3\">III</option>\r\n<option value=\"4\">IV</option>\r\n<option value=\"5\">V</option>\r\n<option value=\"6\">VI</option>\r\n<option value=\"7\">VII</option>\r\n<option value=\"8\">VIII</option>\r\n<option value=\"9\">IX</option>\r\n<option value=\"10\">X</option>\r\n<option value=\"11\">XI</option>\r\n<option value=\"12\">XII</option>\r\n<option value=\"13\">XIII</option>\r\n<option value=\"14\">XIV</option>\r\n<option value=\"15\">XV</option>\r\n<option value=\"16\">XVI</option>\r\n<option value=\"17\">XVII</option>\r\n<option value=\"18\">XVIII</option>\r\n<option value=\"19\">XIX</option>\r\n<option value=\"20\">XX</option>\r\n</select>\r\n</div>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=10><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Recherche directe</b><br></font>\r\n\t\t\t\t<font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\"><img src=\"http://www.01net.com/img/dot.gif\" width=8 height=1>rechercher une ville<br><img src=\"http://www.01net.com/img/dot.gif\" width=8 height=1>et/ou une boutique<br></font>\r\n\t\t\t\t<input type=\"text\" name=\"recherchedirecte\" size=\"14\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;width:130px;\" value=\"\" onFocus=\"javascript:document.selection.recherchedirecte.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=3><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1> <input type=\"image\" src=\"http://www.01net.com/img/v4/MA/ok_bloc_recher_MA.gif\" border=\"0\">\r\n\t\t\t\t<table height=23 width=135 cellspacing=0 cellpadding=0 border=0 bgcolor=#FFEE77>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td bgcolor=#FFEE77 valign=middle align=center><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://micro-achat.01net.com/annuaire/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Recherche avanc\351e</b></font></a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t</td>\r\n\t\t\t</tr></form>\r\n\t\t</table>\r\n\t\t</td>\r\n<!-- DEBUT MicroAchat MA_Telecharg //-->\r\n<td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n<table width=\"145\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/v4/MA/Ban_v4_MA_telec.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<table width=\"145\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#DFECF6\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td rowspan=\"17\"><img src=\"http://www.01net.com/img/dot.gif\" width=\"6\"></td>\r\n\t\t\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"></td>\r\n\t\t\t\t<td rowspan=\"17\"><img src=\"http://www.01net.com/img/dot.gif\" width=\"6\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Bureautique\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Bureautique</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Traducteur, organiseur...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Multimedia\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Multim\351dia</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Photo, audio, vid\351o...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Utilitaire\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Utilitaires</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Antivirus, pilotes, gravure...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Personnaliser\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Personnaliser son PC</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Ecrans de veille, th\350mes...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Programmation\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>D\351veloppement</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Cr\351ation de logiciels, BDD...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Jeux\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Jeux</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Action, simulation...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Internet\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Internet</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Utilitaires, email, FTP...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Loisirs\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Loisirs</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Humour, culture...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_Telecharg //--> \t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_AnnTelec --> <!-- - ZONE M2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE M3 -->\r\n<!-- - ZONE M3 -->\r\n<!-- + ZONE M4 -->\r\n<!-- - ZONE M4 -->\r\n<!-- + ZONE M5 -->\r\n<!-- - ZONE M5 -->\r\n<!-- -ZONE_Mn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t<tr>\r\n<!-- +ZONE_tn -->\r\n<!-- + ZONE t0 -->\r\n<!-- - ZONE t0 -->\r\n<!-- + ZONE t1 -->\r\n<!-- - ZONE t1 -->\r\n<!-- + ZONE t2 -->\r\n<!-- - ZONE t2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE t3 -->\r\n<!-- - ZONE t3 -->\r\n<!-- + ZONE t4 -->\r\n<!-- - ZONE t4 -->\r\n<!-- + ZONE t5 -->\r\n<!-- - ZONE t5 -->\r\n<!-- -ZONE_tn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td valign=top>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t<tr>\r\n<!-- +ZONE_dn -->\r\n<!-- + ZONE d0 -->\r\n<!-- - ZONE d0 -->\r\n<!-- + ZONE d1 -->\r\n<!-- - ZONE d1 -->\r\n<!-- + ZONE d2 -->\r\n<!-- - ZONE d2 -->\r\n<!-- + ZONE d3 -->\r\n<!-- - ZONE d3 -->\r\n<!-- + ZONE d4 -->\r\n<!-- - ZONE d4 -->\r\n<!-- + ZONE d5 -->\r\n<!-- - ZONE d5 -->\r\n<!-- + ZONE d6 -->\r\n<!-- - ZONE d6 -->\r\n<!-- + ZONE d7 -->\r\n<!-- - ZONE d7 -->\r\n<!-- + ZONE d8 -->\r\n<!-- - ZONE d8 -->\r\n<!-- + ZONE d9 -->\r\n<!-- - ZONE d9 -->\r\n<!-- -ZONE_dn -->\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t\t</table>\r\n<!-- FIN WORK -->\r\n\t\t</td>\r\n<!-- *********************************************************************FIN VENTRE********************************************************************************************************************************************** //-->\r\n\t\t<td rowspan=2 valign=top width=23 background=\"http://www.01net.com/img/v4/sep_verticale.gif\"><img src=\"http://www.01net.com/img/dot.gif\" width=23 height=1><br></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t\t<td colspan=2>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=100%>\r\n<!-- +ZONE_Bn -->\r\n<!-- + ZONE B0 -->\r\n<!-- - ZONE B0 -->\r\n<!-- + ZONE B1 -->\r\n<tr><!-- ********** DEBUT BLOC Home NosJournauxV4 //-->\r\n<td valign=top bgcolor=#FFFFFF>\r\n<img src=\"http://www.01net.com/img/ban/Ban_v4_jx.gif\"><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=15><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1>\r\n<a href=\"http://www.01net.com/rubrique/3339.html\"><img src=\"http://www.01net.com/img/journaux/01I-small.gif\" border=0 vspace=0 hspace=12 align=top></a>\r\n<a href=\"http://www.01net.com/rubrique/4051.html\"><img src=\"http://www.01net.com/img/journaux/DSI-small.gif\" border=0 vspace=0 hspace=12 align=top></a>\r\n<a href=\"http://www.01net.com/rubrique/3345.html\"><img src=\"http://www.01net.com/img/journaux/DIN-small.gif content: @ 1099872000000000: 'HTTP/1.1 200 OK\r\nX-Google-Crawl-Date: Mon, 08 Nov 2004 17:22:09 GMT\r\nContent-Type: text/html\r\nConnection: close\r\nX-Powered-By: PHP/4.3.8\r\nServer: Apache/1.3.31 (Unix) mod_gzip/1.3.19.1a PHP/4.3.8\r\nDate: Mon, 08 Nov 2004 17:19:07 GMT\r\n\r\n <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n<BASE target=\"_top\">\r\n\n<TITLE>Micro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux</TITLE>\r\n<META NAME=\"Description\" CONTENT=\"Micro Achat : Ordinateurs, PDA\">\r\n<META NAME=\"Keywords\" CONTENT=\"Micro Achat : Ordinateurs, PDA - Toute l\'informatique avec 01Informatique, L\'Ordinateur Individuel, Micro Hebdo, D\351cision Informatique et 01R\351seaux\">\r\n<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://www.01net.com/styles/01net.css\">\r\n<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" HREF=\"http://www.01net.com/styles/tableau_autre.css\">\r\n<STYLE type=text/css>\r\nA{TEXT-DECORATION: none;color:#000000;}\r\nA:visited{TEXT-DECORATION: none;color:#000000;}\r\n</STYLE>\r\n<SCRIPT LANGUAGE=\"JavaScript1.1\">\r\nvar sameAsBigDay = new Date();\r\nvar ord = (sameAsBigDay.getTime());\r\nvar pubsMotsCles = \"\";\r\nvar exc;\r\nvar lienhautdepage = \"\";\r\nvar etatmessage = false;\r\nvar enchainement = false;\r\nsas_tmstp=Math.round(Math.random()*10000000000);\r\nfunction SmartAdServer(sas_pageid,sas_formatid,sas_master,sas_target) {\r\n if ((sas_master!=\'M\')&&(sas_master!=\'S\')) {sas_master=\'S\'};\r\n document.write(\'<SCR\'+\'IPT SRC=\"http://www.smartadserver.com/call/pubj/\' + sas_pageid + \'/\' + sas_formatid + \'/\'+sas_master + \'/\' + sas_tmstp + \'/\' + escape(sas_target) + \'?\"></SCR\'+\'IPT>\');\r\n}\r\n</SCRIPT>\r\n<SCRIPT LANGUAGE=\"JAVASCRIPT\" SRC=\"http://www.01net.com/js/exc.js\"></SCRIPT>\r\n<script language=\"javascript\" src=\"http://telecharger.01net.com/shopping/js/headservicesV4.js\"></script>\r\n<noscript>\r\n<a href=\"http://cinema.01net.com\">T\351l\351charger des bandes-annonces, des teasers, des extraits et des making of de vos films cin\351ma pr\351f\351r\351s</a>,\r\n<a href=\"http://www.01net.com/BusinessTechnologies/\">Portail leader de l\'information sur les nouvelles technologies - Actualites et enquetes sur l\'informatique et les NTIC (nouvelles technologies de l\'information et la communication). Exemples de sujets : e-business, telecoms, CRM, VPN, 3G, DSL, fournisseurs d\'acces, Linux, piratage, securite informatique, progiciel...</a><br>\r\n<a href=\"http://www.01net.com/securite_informatique.html\">s\351curit\351 informatique</a>,\r\n<a href=\"http://www.01net.com/strategies_ntic.html\">strat\351gies NTIC</a>,\r\n<a href=\"http://www.01net.com/piratage_informatique.html\">piratage informatique</a>,\r\n<a href=\"http://www.01net.com/technologie_dsl.html\">technologie DSL</a>,\r\n<a href=\"http://www.01net.com/solutions_vpn.html\">solutions VPN</a>,\r\n<a href=\"http://www.01net.com/strategie_e-business.html\">strat\351gies</a>,\r\n<a href=\"http://www.01net.com/outils_crm.html\">outils CRM</a>,\r\n<a href=\"http://www.01net.com/logiciel_linux.html\">logiciel Linux</a>,\r\n<a href=\"http://www.01net.com/fournisseur_d_acces.html\">fournisseur d\'acc\350s</a>,\r\n<a href=\"http://www.01net.com/progiciel.html\">progiciel</a>,\r\n<a href=\"http://www.01net.com/stockage_de_donnees.html\">stockage de donn\351es</a>,\r\n<a href=\"http://www.01net.com/etudes_solution_informatique.html\">\351tudes solution informatique</a>,\r\n<a href=\"http://www.01net.com/NTIC.html\">NTIC</a>,\r\n<a href=\"http://www.01net.com/actualite_technologie.html\">actualit\351 technologie</a>,\r\n<a href=\"http://www.01net.com/etude_materiel_informatique.html\">\351tude mat\351riel informatique</a>,\r\n<a href=\"http://www.01net.com/actus/\">actualit\351s des nouvelles technologies</a>,\r\n<a href=\"http://www.01net.com/MicroPerso/\">enqu\352tes et trucs et astuces sur le mat\351riel informatique, les logiciels, les fournisseurs d\'acc\350s...</a>,\r\n<a href=\"http://www.01net.com/emploi/\">emploi et formations informatiques : offres d\'emploi informatique...</a>,\r\n<a href=\"http://www.01net.com/produits/\">fiches, tests mat\351riels et logiciels en informatique</a>,\r\n<a href=\"http://www.01net.com/01informatique\">01 Informatique</a>,\r\n<a href=\"http://www.caractere.net\">Caract\350re, le site des professionnels de l\'imprim\351 - communication imprim\351e, \351dition, emballage, encres, finition, flexographie, h\351liogravure, impression, imprimerie, imprimeur, industries graphiques, num\351rique, offset, papier, pr\351presse, presse, print, reprographie, s\351rigraphie, typographie</a>,\r\n<a href=\"http://www.01net.com/decisionmicro\">Decision Micro</a>,\r\n<a href=\"http://www.01net.com/decisioninformatique\">D\351cision Informatique</a>,\r\n<a href=\"http://www.01net.com/01reseaux\">01 R\351seaux</a>,\r\n<a href=\"http://logiciel.telecharger.01net.com/\">logiciel</a>,\r\n<a href=\"http://developpeur.telecharger.01net.com/windows/Programmation/\">d\351veloppeur programmation</a>,\r\n<a href=\"http://anti-virus.telecharger.01net.com\">anti-virus</a>,\r\n<a href=\"http://gravure-cd-dvd.telecharger.01net.com/windows/Utilitaire/gravure/\">gravure cd dvd</a>,\r\n<a href=\"http://codec.telecharger.01net.com/windows/Multimedia/encodeurs_et_decodeurs/\">codec encodeur d\351codeur</a>,\r\n<a href=\"http://software.telecharger.01net.com/\">software</a>,\r\n<a href=\"http://logiciels.telecharger.01net.com/\">logiciels</a>,\r\n<a href=\"http://gratuit.telecharger.01net.com/\">gratuit</a>,\r\n<a href=\"http://p2p.telecharger.01net.com/windows/Internet/partage/\">p2p peer to peer partage de fichiers</a>,\r\n<a href=\"http://securite.telecharger.01net.com/windows/Utilitaire/cryptage_et_securite/\">s\351curit\351</a>,\r\n<a href=\"http://compression-decompression.telecharger.01net.com/windows/Utilitaire/compression_et_decompression/\">compression et d\351compression</a>,\r\n<a href=\"http://divx.telecharger.01net.com/\">divx</a>,\r\n<a href=\"http://utilitaire.telecharger.01net.com/windows/Utilitaire/\">utilitaire</a>,\r\n<a href=\"http://jeux.telecharger.01net.com/windows/Jeux/\">jeux</a>,\r\n<a href=\"http://loisirs.telecharger.01net.com/windows/Loisirs/\">loisirs</a>,\r\n<a href=\"http://mac.telecharger.01net.com/mac/\">mac</a>,\r\n<a href=\"http://linux.telecharger.01net.com/linux/\">linux</a>,\r\n<a href=\"http://shareware.telecharger.01net.com/\">shareware</a>,\r\n<a href=\"http://video-dvd.telecharger.01net.com/windows/Multimedia/lecteurs_video_dvd/\">vid\351o dvd</a>,\r\n<a href=\"http://multimedia.telecharger.01net.com/\">multim\351dia</a>,\r\n<a href=\"http://traduction.telecharger.01net.com/windows/Bureautique/traducteur/\">traduction</a>,\r\n<a href=\"http://mp3.telecharger.01net.com/windows/Multimedia/lecteurs_audio_mp3_cd/\">mp3</a>,\r\n<a href=\"http://tchat.telecharger.01net.com/windows/Internet/communication/\">tchat</a>\r\n<a href=\"http://chat.telecharger.01net.com/windows/Internet/communication/\">chat</a>,\r\n<a href=\"http://musique.telecharger.01net.com/\">musique</a>,\r\n<a href=\"http://mobile.telecharger.01net.com/mobile/\">mobile</a>,\r\n<a href=\"http://telephone_portable.telecharger.01net.com/mobile/\">t\351l\351phone portable</a>,\r\n<a href=\"http://telephone_mobile.telecharger.01net.com/mobile/\">t\351l\351phone mobile</a>\r\n</noscript>\r\n</head>\r\n</head>\r\n<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#000000\" marginwidth=0 marginheight=0 topmargin=0 leftmargin=0>\r\n<!-- + ZONE TETE -->\r\n<!-- ********** DEBUT MODELE INTERNE TETES MHA-tetev4 //-->\r\n<table width=100% height=66 cellspacing=0 cellpadding=0 border=0 bgcolor=#ffffff>\r\n\t<tr>\r\n\t\t<td height=8 colspan=2><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=8></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td valign=bottom><a href=\"http://microachat.01net.com\"><img src=\"http://www.01net.com/img/v4/logos_tete/tet_gauche-mha.gif\" border=0></a></td>\r\n\t\t<td valign=bottom bgcolor=#FFFFFF bbackground=\"http://www.01net.com/img/v4/tet_droite.gif\" width=100% style=\"background-image:url(/img/v4/tet_droite-mha.gif);background-position:bottom;background-repeat:repeat-x\"><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=66 align=left hspace=0 vspace=0></td>\r\n\t</tr>\r\n</table>\r\n<table width=100% cellspacing=0 cellpadding=0 border=0 bgcolor=#ffffff>\r\n\t<tr>\r\n\t\t<td valign=top background=\"http://www.01net.com/img/v4/fond_date-mha.gif\" height=18 width=500><img src=\"http://www.01net.com/img/dot.gif\" width=500 height=1><br><img src=\"http://www.01net.com/img/dot.gif\" width=19 height=1><font face=\"Arial\" size=1 color=#666666 style=\"font-size: 11px;\"><b>Derni\350re mise \340 jour de cette page : lundi 8 novembre 2004 | 16:45</b></font></td>\r\n\t\t<td width=100% background=\"http://www.01net.com/img/v4/fond_date2-mha.gif\" height=18></td>\r\n\t</tr>\r\n</table>\r\n<!-- ********** FIN MODELE INTERNE TETES MHA-tetev4 //--> <!-- - ZONE TETE -->\r\n<!-- ***************************************************************************************************************************************************************************************************************************** //-->\r\n<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n<!-- DEBUT PARTIE PUB //-->\r\n\t<tr>\r\n<td align=center valign=middle colspan=2 background=\"http://www.01net.com/img/v4/fond_bann.gif\"><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br>\r\n<!-- + ZONE Z0 -->\r\n<SCRIPT LANGUAGE=\"JAVASCRIPT\">\r\nvar fa = \"\";\r\nvar fab = document.URL.toString();\r\nif (fab.indexOf(\"?fa\") != -1 || fab.indexOf(\"&fa\") != -1)\r\n{\r\nfa = \";!category=fai\";\r\n}\r\nvar etatmessage = false;\r\nvar enchainement = false;\r\n</SCRIPT>\r\n<SCRIPT LANGUAGE=\"JavaScript1.1\">\r\nsas_pageid=\'167/3872\';\r\nsas_formatid=95;\t\t\t// Format : Banner/Scope 468x60\r\nsas_master=\'M\';\t\t\t// Master : M=master or S=slave\r\nsas_target=exc + \'rubrique\';\t\t\t// Targeting\r\nSmartAdServer(sas_pageid,sas_formatid,sas_master,sas_target);\r\n</SCRIPT>\r\n <!-- - ZONE Z0 --></td>\r\n\t\t<td valign=top width=23 background=\"http://www.01net.com/img/v4/sep_verticale.gif\" ><img src=\"http://www.01net.com/img/dot.gif\" width=23 height=1><br></td>\r\n<td valign=top width=100% bgcolor=\"ffffff\" rowspan=3><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=125><br>\r\n<!-- +ZONE_Dn -->\r\n<!-- + ZONE D0 -->\r\n<!-- DEBUT MA_ColD -->\r\n<div style=\"background-color : #ffffff; width : 150px; padding-left : 5px; padding-right : 5px; font-family : Arial, Helvetica;\">\n\t\t\t\t\t<table style=\"border-spacing : 0; width : 146px; margin-top : 0px;\" cellspacing=\"0\">\n\t\t\t\t\t<tr><th colspan=\"2\" style=\"padding : 0;\"><img src=\"http://micro-achat.01net.com/img/utils/micro-achat/tete-produitsrecherches.gif\" alt=\"\" /></th></tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Imagerie </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/12537-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/imagerie/moniteurs-lcd/l1720b/\">LG L1720B</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">332.89 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Ordinateurs </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/4043-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/desktops/veriton-7600g/\">Acer Veriton 7600G</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">705 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Ordinateurs </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/1903-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/sn95g5/\">Shuttle SN95G5</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">375 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Composants </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/1259-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/composants/cartes-meres/a7n8x-e-deluxe/\">Asus A7N8X-E Deluxe</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">91.99 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t\t<td style=\"height : 12px; vertical-align : top; padding : 0; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/point.gif); background-repeat: repeat-x; background-position : 0px 3px;\" colspan=\"2\"><span style=\"float : left; position : relative; font-size : 10px; color : #cc0003; background-color : #ffffff;\">Composants </span></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"width : 65px; vertical-align : top;\"><img src=\"http://micro-achat.01net.com/img/photoproduit/4687-vignette.png\" alt=\"\" style=\"border : 1px solid #000000;\" /></td>\n\t\t\t\t\t\t\t<td style=\"width : 75px; font-size : 11px; font-weight : 700;\">\n\t\t\t\t\t\t\t\t<a style=\"color : #cc0003; text-decoration : none;\" href=\"http://micro-achat.01net.com/guide-produits/composants/ventilateur/sp-94/\">Thermalright SP-94</a>\n\t\t\t\t\t\t\t\t<div style=\"text-align : center; width : 100%; font-size : 9px; font-weight : 100; margin-top : 5px;\">\n\t\t\t\t\t\t\t\t\t\340 partir de\n\t\t\t\t\t\t\t\t\t<div style=\"width : 75px; height : 21px; color : #ffffff; font-size : 12px; font-weight : 700; background-image : url(http://micro-achat.01net.com/img/utils/micro-achat/fond-prix.gif);\"><span style=\"position : relative; top : 3px;\">49 €</span></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr></table>\n\t\t\t\t<table style=\"border-spacing : 0px 1px; width : 146px; margin-top : 15px;\" cellspacing=\"0\">\n\t\t\t\t<tr><th colspan=\"2\" style=\"padding : 0;\"><img src=\"http://micro-achat.01net.com/img/utils/micro-achat/tete-revendeurmisajour.gif\" alt=\"\" /></th></tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">1 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Rhone-Alpes/Ain/pc-look\" style=\"color : #000000; text-decoration : none;\">PC Look</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">2 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Nord-Pas-de-Calais/Pas-de-Calais/atelier-informatique\" style=\"color : #000000; text-decoration : none;\">Atelier Informatique</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">3 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Val-de-Marne/zanax-multimedia\" style=\"color : #000000; text-decoration : none;\">Zanax Multim\351dia</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">4 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Hauts-de-Seine/misteroops\" style=\"color : #000000; text-decoration : none;\">MISTEROOPS</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">5 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/12/168-golden-avenue\" style=\"color : #000000; text-decoration : none;\">168 Golden Avenue</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">6 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Seine-Saint-Denis/microchoix\" style=\"color : #000000; text-decoration : none;\">microchoix</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">7 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/12/e-soph\" style=\"color : #000000; text-decoration : none;\">e-Soph</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">8 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Paris/13/pc-price-club\" style=\"color : #000000; text-decoration : none;\">PC Price Club</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ddeeee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">9 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Ile-de-France/Seine-et-Marne/pc-77\" style=\"color : #000000; text-decoration : none;\">PC 77</a></td>\n\t\t\t\t</tr><tr style=\"background-color : #ccddee; font-size : 10px; font-weight : 700; color : #cc0003;\">\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 32px;\">10 <img src=\"http://micro-achat.01net.com/img/utils/micro-achat/flechefine_fondtransp.gif\" alt=\">\" /></td>\n\t\t\t\t\t<td style=\"border-top : 1px solid #ffffff; width : 110px;\"><a href=\"http://micro-achat.01net.com/annuaire/Alsace/Bas-Rhin/web-in-informatique\" style=\"color : #000000; text-decoration : none;\">Web In Informatique</a></td>\n\t\t\t\t</tr></table>\n\t\t\t\t</div>\n\t\t\t\t<br>\r\n<!-- FIN MA_ColD --> <!-- - ZONE D0 -->\r\n<!-- + ZONE D1 -->\r\n<!-- - ZONE D1 -->\r\n<!-- + ZONE D2 -->\r\n<!-- - ZONE D2 -->\r\n<!-- -ZONE_Dn -->\r\n</td>\r\n\t</tr>\r\n<!-- FIN PARTIE PUB //-->\r\n\t<tr>\r\n\t\t<td valign=top width=193 height=100% background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n\t\t<!-- contenu colonne de gauche //-->\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0 background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n<!-- +ZONE_Gn -->\r\n<!-- + ZONE G0 -->\r\n<tr><!-- ********** DEBUT MHA_MenusChainesV4 //-->\r\n<td valign=top>\n<table border=0 cellpadding=0 cellspacing=0 width=193 bgcolor=#FFFFFF>\n<tr>\n<td background=\"/img/v4/menus/motifgauche_menus.gif\" width=20 rowspan=2><img src=\"/img/dot.gif\" width=20 height=20></td>\n<td width=173 colspan=2 bgcolor=#FFFFFF><img src=\"/img/dot.gif\" width=173 height=20></td>\n</tr>\n<tr>\n<td valign=top width=159>\n\n<a href=\"http://www.01net.com\"><img src=\"/img/v4/menus/mha/home01net-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com\"><img src=\"/img/v4/menus/mha/home-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4317.html\"><img src=\"/img/v4/menus/mha/ordinateurs-2.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4318.html\"><img src=\"/img/v4/menus/mha/composants-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4319.html\"><img src=\"/img/v4/menus/mha/stockage-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4320.html\"><img src=\"/img/v4/menus/mha/image-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4321.html\"><img src=\"/img/v4/menus/mha/peripheriques-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4322.html\"><img src=\"/img/v4/menus/mha/reseaux-1.gif\" width=159 border=0></a><br>\n<a href=\"http://microachat.01net.com/rubrique/4323.html\"><img src=\"/img/v4/menus/mha/accessoires-1.gif\" width=159 border=0></a><br>\n<a href=\"http://micro-achat.01net.com/guide-produits/\"><img src=\"/img/v4/menus/mha/comparateur-1.gif\" width=159 border=0></a><br>\n<a href=\"http://micro-achat.01net.com/annuaire/\"><img src=\"/img/v4/menus/mha/annuaire-1.gif\" width=159 border=0></a><br></td>\n<td width=14><img src=\"/img/dot.gif\" width=14 height=14></td>\n</tr>\n<tr>\n<td colspan=3><img src=\"/img/v4/menus/bas_menus.gif\" width=193 height=31></td>\n</tr>\n</table></td><!-- ********** FIN MHA_MenusChainesV4 //--> </tr><!-- - ZONE G0 -->\r\n<!-- + ZONE G1 -->\r\n<tr><!-- DEBUT MODELE RUBRIQUE V4ColGaucheMHA //-->\r\n<!-- ********** DEBUT BLOC DernieresNewsTC //-->\r\n<td valign=top>\r\n<!-- DEBUT RECHERCHE MHA -->\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n\t\t\t<td valign=top background=\"http://microachat.01net.com/img/v4/fond_rech_mha.gif\" height=98 style=\"background-repeat:no-repeat;\"><form method=\"get\" name=\"chercher\" action=\"http://www.01net.com/aiguillage_recherche/1,6138,,00.html\"><img src=\"http://microachat.01net.com/img/dot.gif\" width=193 height=17><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><input type=\"text\" name=\"fullText\" style=\"width:130px;font:12px;\"><br><img src=\"http://microachat.01net.com/img/dot.gif\" width=1 height=6><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><select name=\"sousArbo\" style=\"width:130px;font:12px;\">\r\n\t\t\t<option value=\"mha\">dans Micro Achat\r\n\t\t\t<option value=\"cmp\">les prix\r\n\t\t\t<option value=\"ann\">les revendeurs\r\n\t\t\t<option value=\"2641\">tout 01net.\r\n\t\t\t<option value=\"emploi\">les offres d\'emploi\r\n\t\t\t<option value=\"telecharger\"> telecharger.com\r\n\t\t\t<option value=\"web\">le web\r\n\t\t\t</select><br><img src=\"http://microachat.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t<img src=\"http://microachat.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"http://microachat.01net.com/img/v4/ok_bloc_recher_mha.gif\" border=\"0\"></form>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=10 vspace=0>\r\n<!-- FIN RECHERCHE MHA -->\r\n <!-- modele TCFilColgTitV4 //-->\r\n <table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top>\r\n\t\t<table width=155 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=2><img src=\"http://www.01net.com/img/ban/Ban_v4_DernieresNews01net.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4></td>\r\n\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/256059.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">CD et DVD bient\364t insensibles aux rayures<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/255796.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">OpenOffice gagne son service<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"></td>\r\n\t\t\t\t<td valign=top><A HREF=\"http://www.01net.com/article/255731.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">La messagerie en cinq minutes selon Ipswitch<br></font></a><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=2></td>\r\n\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t<td valign=top colspan=2><A HREF=\"http://www.01net.com/actus/\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\">> toutes les news<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td colspan=2><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/crochet_bleuhaut_155.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20> <!-- ********** FIN BLOC DernieresNewsTC //-->\r\n<!-- ********** DEBUT BLOC NL_MHA //-->\r\n<SCRIPT language=\"javascript\" src=\"http://www.01net.com/js/lib.js\"></SCRIPT>\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<FORM name=\"formgen\" method=\"get\" action=\"http://microachat.01net.com/outils/newsletter_MicroAchat.html\" onSubmit=\"return validateForm(this)\">\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=155 colspan=4><img src=\"http://www.01net.com/img/ban/Ban_V4_Newslett.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=10><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=1 bgcolor=#CC0000><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t<td width=153>\r\n\t\t<table width=153 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=10><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t\t\t<td valign=top><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefinefd_ffffff.gif\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Recevez chaque jour l\'actualit\351 des produits et des promos<br></font>\r\n\t\t\t\t<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><input type=\"text\" name=\"email\" size=\"14\" style=\"width:130px;font:12px;\" value=\"entrez votre e-mail\" onFocus=\"javascript:document.formgen.email.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"http://www.01net.com/img/v4/ok_bloc_recher.gif\" border=\"0\"></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td width=1 bgcolor=#CC0000><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td width=155 colspan=4><img src=\"http://www.01net.com/img/v4/base_newsletters.gif\"></td>\r\n\t\t</FORM>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20>\r\n<SCRIPT language=\"Javascript\">\r\ndocument.formgen.email.validator= \'notNullEmailPat\';\r\ndocument.formgen.email.nomvalidator= \'E-mail\';\r\n</SCRIPT>\r\n<!-- ********** FIN BLOC NL_MHA //-->\r\n</td>\r\n</tr>\r\n<tr>\r\n<!-- ********** DEBUT BLOC Actus ActusUneV4 //-->\r\n<td valign=top background=\"http://www.01net.com/img/v4/sepgrisedroite.gif\">\r\n<table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top>\r\n\t\t<table width=155 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/ban/Ban_v4_LaUne.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/entreprise/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Entreprise</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://www.01net.com/article/255737.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">Quand le billet papier s\'envole vers la d\351mat\351rialisation</font></a></td>\r\n\t\t\t\t<td valign=top width=2><img src=\"http://www.01net.com/img/dot.gif\" width=2 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/article/255737.html\"><img src=\"http://www.01net.com/img/MEA_v4/billet_virtuel-65.jpg\" border=0></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/pratique/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Trucs et astuces</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255698.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">D\351pannez Windows XP</font></a></td>\r\n\t\t\t\t<td valign=top width=2><img src=\"http://www.01net.com/img/dot.gif\" width=2 height=1></td>\r\n\t\t\t\t<td valign=top><a href=\"http://www.01net.com/article/255698.html\"><img src=\"http://www.01net.com/img/MEA_v4/depannez_XP-65.jpg\" border=0 ></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t</tr>\r\n\t\t <tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top colspan=3><a href=\"http://www.01net.com/conso/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Conso</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255524.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">Vos photos sur papier imprimante ou labo ?<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t<!-- exemple de lien avec pseudorub pour produits et tests -->\r\n\t\t<!-- <a href=\"/outils/PseudoRub.php?base=test-comp&rub=1730&pseudo=test-comp20041005\"> -->\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=top width=1><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t\t\t<td valign=top colspan=3><a href=\"http://www.01net.com/produits/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b><u>Produits & Tests</u></b><br></font></a>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"/article/255782.html\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 11px; text-decoration:none;\">5 programmes d\222encodage vid\351o gratuits<br></font></a></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td colspan=4><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/LaUne_Sep.gif\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t</tr>\r\n</table>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20>\r\n</td>\r\n<!-- ********** FIN BLOC Actus ActusUneV4 //--> </tr>\r\n<tr>\r\n<td>\r\n<table width=193 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" width=10 height=1></td>\r\n\t\t<td valign=top><a href=\"mailto:s.cohen@micro-achat.fr\"><img border=0 src=\"http://www.01net.com/img/v4/espace-revendeurs.gif\"></td>\r\n\t</tr>\r\n</table>\r\n<br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20></td>\r\n<!-- FIN MODELE RUBRIQUE V4ColGaucheMHA //--> </tr><!-- - ZONE G1 -->\r\n<!-- + ZONE G2 -->\r\n<!-- - ZONE G2 -->\r\n<!-- + ZONE G3 -->\r\n<!-- - ZONE G3 -->\r\n<!-- + ZONE G4 -->\r\n<!-- - ZONE G4 -->\r\n<!-- + ZONE G5 -->\r\n<!-- - ZONE G5 -->\r\n<!-- + ZONE G6 -->\r\n<!-- - ZONE G6 -->\r\n<!-- + ZONE G7 -->\r\n<!-- - ZONE G7 -->\r\n<!-- + ZONE G8 -->\r\n<!-- - ZONE G8 -->\r\n<!-- + ZONE G9 -->\r\n<!-- - ZONE G9 -->\r\n<!-- + ZONE GA -->\r\n<!-- - ZONE GA -->\r\n<!-- + ZONE GB -->\r\n<!-- - ZONE GB -->\r\n<!-- + ZONE GC -->\r\n<!-- - ZONE GC -->\r\n<!-- + ZONE GD -->\r\n<!-- - ZONE GD -->\r\n<!-- + ZONE GE -->\r\n<!-- - ZONE GE -->\r\n<!-- + ZONE GF -->\r\n<!-- - ZONE GF -->\r\n<!-- -ZONE_Gn -->\r\n\t\t</table>\r\n\t\t<!-- fin contenu colonne de gauche //-->\r\n\t\t</td>\r\n<!-- ***************************************************************** DEBUT VENTRE*********************************************************************************************************************************************** //-->\r\n<!-- DEBUT WORK -->\r\n\t\t<td valign=top width=625 bgcolor=#ffffff><img src=\"http://www.01net.com/img/dot.gif\" width=625 height=1><br>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_hn -->\r\n<!-- + ZONE h0 -->\r\n<!-- MA_ban_int -->\r\n<td valign=\"top\">\r\n<img src=\"/img/dot.gif\" height=\"18\"><br>\r\n<!-- pour ordipda -->\r\n<table width=\"625\" cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td><img src=\"/img/v4/MA/Ban_MA_ordis.gif\"></td>\r\n\t</tr>\r\n</table>\r\n\t</td>\r\n<!-- /MA_ban_int --> <!-- - ZONE h0 -->\r\n<!-- + ZONE h1 -->\r\n<!-- - ZONE h1 -->\r\n<!-- + ZONE h2 -->\r\n<!-- - ZONE h2 -->\r\n<!-- -ZONE_hn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_Hn -->\r\n<!-- + ZONE H0 -->\r\n<!-- Ma_int_Leader -->\r\n <td valign=top>\r\n<img src=\"/img/dot.gif\" width=1 height=18><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=320>\r\n<tr>\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<td width=144 valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=143 height=1 vspace=0><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:11px;>Portable</font><br>\r\n<A HREF=\"/article/256198.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=font-size:14px;><b>Un nouvel ultra portable r\351alis\351 par Nec</b></font></a><br>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/256198.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67509.jpg.res_100-100.jpg\" border=0 hspace=0 vspace=0></a><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n<font face=arial,helvetica size=2 color=#000000 style=font-size:12px;><img src=\"/img/v4/flechefine_fondtransp.gif\">Le Versa S940 a un format r\351duit, mais ses performances sont \340 la hauteur.</font><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:12px;>\340 partir de 1663 \200</font>\r\n</td>\r\n<td width=17 background=\"/img/v4/MA/v4-fond-sep-mea-leader.gif\"><img src=\"/img/dot.gif\" width=17 height=1></td>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<td width=144 valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=143 height=1 vspace=0><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:11px;>Portable</font><br>\r\n<A HREF=\"/article/255194.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=font-size:14px;><b>Asus pr\351sente trois petits nouveaux dans la gamme A3N</b></font></a><br>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255194.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67168.jpg.res_100-100.jpg\" border=0 hspace=0 vspace=0></a><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n<font face=arial,helvetica size=2 color=#000000 style=font-size:12px;><img src=\"/img/v4/flechefine_fondtransp.gif\">Ces trois portables Centrino int\350grent, entre autres, une webcam et un contr\364leur Wi-Fi.</font><br>\r\n<font face=arial,helvetica size=1 color=#CC0000 style=font-size:12px;>\340 partir de 1346 \200</font>\r\n</td>\r\n<td width=15><img src=\"/img/dot.gif\" width=15 height=1></td>\r\n\t\t\t\t</tr>\r\n</table>\r\n</td>\r\n<!-- /Ma_int_Leader --> <!-- - ZONE H0 -->\r\n<!-- + ZONE H1 -->\r\n<!-- - ZONE H1 -->\r\n<!-- + ZONE H2 -->\r\n<!-- MA_BP_MP -->\r\n<td valign=\"top\" width=\"100%\">\r\n\t<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\r\n\t<tr>\r\n\t<td width=\"50%\" valign=\"top\">\r\n\t<!-- DEBUT MicroAchat MA_BonPlan -->\r\n<td valign=top>\r\n<img src=\"/img/dot.gif\" width=1 height=18><br>\r\n<table border=0 cellpadding=1 cellspacing=0 width=145 bgcolor=#CC0000>\r\n<tr>\r\n<td align=center><font face=arial,helvetica size=1 color=#FFFFFF style=\"font-size:11px;\">BON PLAN</a></font></td>\r\n</tr>\r\n<tr>\r\n<td width=145>\r\n<div style=\"padding:5px;padding-left:5px;padding-fight:5px;margin:0px;margin-left:1px;margin-right:1px;background-color:#FFFFFF;\">\r\n<img src=\"/img/microachat/logo_shuttle_SB83G5.gif\" border=0><br>\r\n<font face=arial,helvetica size=2 color=#CC0000 style=\"font-size:12px;\">Les derni\350res technologies INTEL dans un nouveau design pour ce shuttle haut de gamme, pour un prix abordable.<br></font>\r\n<center><a href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/sb83g5/?fabriquant=1&page=1&tri=titre\"><img src=\"/img/microachat/mea_shuttle_SB83G5.gif\" border=0 vspace=5></a><br></center>\r\n<center>\r\n<font face=arial,helvetica size=2 color=#CC0000 style=\"font-size:13px;\"><b>\340 partir de</b><br>\r\n<div style=\"border:solid 2px #CC0000;width:100px;background-color:#FFCC00;\"><b>415 \200</b></div>\r\n</center>\r\n</div>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td align=center><font face=arial,helvetica size=1 color=#FFFFFF style=\"font-size:11px;\">publicit\351</a></font></td>\r\n</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_BonPlan --> \t</td>\r\n\t<td width=\"15\"><img src=\"/img/dot.gif\" width=\"15\"></td>\r\n\t<td width=\"50%\" valign=\"top\">\r\n\t<!-- DEBUT MicroAchat MA_MeillPrixAct //-->\r\n<td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=145 height=1><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=18><br>\r\n<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<FORM name=\"prix\" action=\"http://www.micro-achat.01net.com/guide-produits/recherche.php\" method=\"post\">\r\n\t\t<td width=145 colspan=3><img src=\"http://www.01net.com/img/ban/Ban_v4_MeillPrix_MA.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=1 bgcolor=#FFCC00><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t\t<td width=143>\r\n\t\t<table width=143 cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=6><img src=\"http://www.01net.com/img/dot.gif\" width=6 height=1></td>\r\n\t\t\t\t<td valign=top><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=15><br>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"http://www.01net.com/img/ban/Ban_MA_trouv_ordi.gif\"><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/desktops/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Desktops</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/portables/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Portables</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/mini-pc/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Mini-PC</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/pda---tablets-pc/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Pda / Tablets-PC</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/apple/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">Apple</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/MA/fleche_rouge_maigre.gif\"><a style=\"font-size: 10px; text-decoration:none;\" href=\"http://micro-achat.01net.com/guide-produits/ordinateurs/gps/\"><font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\">GPS</a><br></font>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=20><br>\r\n\t\t\t\t\t\t\t\t<table width=* cellspacing=0 cellpadding=0 border=0>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><input type=\"text\" name=\"recherchedirecte\" size=\"14\" style=\"width:130px;font:12px;\" value=\" recherche directe\" onFocus=\"javascript:document.prix.recherchedirecte.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=9><br>\r\n\t\t\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1><input type=\"image\" src=\"/img/v4/MA/ok_bloc_recher_MA.gif\" border=\"0\"></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td width=1 bgcolor=#FFCC00><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td width=145 colspan=3><img src=\"http://www.01net.com/img/v4/MA/base_meillPrix.gif\"></td>\r\n\t\t</FORM>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_MeillPrixAct //--> \t</td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n<!-- /MA_BP_MP --> <!-- - ZONE H2 -->\r\n<!-- -ZONE_Hn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- +ZONE_Tn -->\r\n<!-- + ZONE T0 -->\r\n <td valign=\"top\">\r\n<img src=\"http://www.01net.com/img/dot.gif\" height=13><br>\r\n<table border=0 width=320 cellpadding=0 cellspacing=0>\r\n<tr>\r\n<td width=305><img src=\"http://www.01net.com/img/ban/Ban_v4_DernNews_MA.gif\"><br><img src=\"http://www.01net.com/img/v4/MA/v4-tiret-hauts-mha.gif\"></td>\r\n<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n</tr>\r\n<tr>\r\n<td bgcolor=\"#FEF9E0\">\r\n\t<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Portable <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255149.html\" style=\"color:#000000;text-decoration:none;\">Toshiba consacre deux gammes de machines au multim\351dia</a></b><br>\r\n\t<font color=\"#000000\">Equipement haut de gamme et Windows Media Center sont au menu de ces portables \340 vocation multim\351dia.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Ordinateur <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254686.html\" style=\"color:#000000;text-decoration:none;\">Arriv\351e d\'un Power Mac G5 d\'entr\351e de gamme</a></b><br>\r\n\t<font color=\"#000000\">La firme \340 la pomme propose une station de travail \351volutive et relativement abordable.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>PC <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254549.html\" style=\"color:#000000;text-decoration:none;\">Alienware propose deux machines au look \351trange</a></b><br>\r\n\t<font color=\"#000000\">Aurora et Area 51 sont deux gammes d\'ordinateurs enti\350rement configurables.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t<tr>\r\n\t<td><div style=\"padding:2px;width:100%;\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#CC0000\" style=\"font-size:11px;\"><b>Portable <img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/254501.html\" style=\"color:#000000;text-decoration:none;\">Trois nouveaux iBook G4 chez Apple</a></b><br>\r\n\t<font color=\"#000000\">Chez Apple, les portables gagnent en vitesse et communiquent sans fil en standard.<br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=4><br></font></td>\r\n\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=10></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-red-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td align=\"right\">\r\n\t\t\t\t<A HREF=\"http://microachat.01net.com/rubrique/4365.html\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 10px;\">> toutes les news</font></a>\r\n\t\t\t</td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n</td> <!-- - ZONE T0 -->\r\n<!-- + ZONE T1 -->\r\n<!-- Ma_derpromo -->\r\n <td valign=\"top\">\r\n<img src=\"/img/dot.gif\" height=13><br>\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td bgcolor=\"#ffffff\"><img src=\"/img/v4/MA/v4-lespromos-mha.gif\"><br><img src=\"/img/v4/MA/v4-tiret-hauts-mha.gif\"></td>\r\n</tr>\r\n</table>\r\n<!-- DEBUT MODELE D\'AFFICHAGE POUR LES n PREMIERS ARTICLES //-->\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255806.html\" class=\"nodeco\"><img src=\"/images/67462.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255806.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>Asus A3N15-C Pro</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Voici un portable autonome et puissant gr\342ce \340 la technologie Intel Centrino.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>1170 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255688.html\" class=\"nodeco\"><img src=\"/images/67381.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255688.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>Soltek EQ3702A Miroir</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Ce mini PC est une solution int\351ressante pour les utilisateurs poss\351dant d\351j\340 un \351cran.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>559 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td colspan=\"5\"><img src=\"/img/dot.gif\" width=\"9\"></td>\r\n</tr>\r\n<tr>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"42\" valign=\"top\">\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"/article/255513.html\" class=\"nodeco\"><img src=\"/images/67319.jpg\" border=0 hspace=0 vspace=0 width=\"42\" height=\"42\"></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t</td>\r\n<td width=\"16\"><img src=\"/img/dot.gif\" width=\"16\"></td>\r\n<td width=\"*\" valign=\"top\"><A HREF=\"/article/255513.html\" class=\"nodeco\"><font face=\"arial,helvetica\" size=2 color=\"#000000\" style=\"font-size:11px;\"><b>IBM ThinkPad R51</b></a><br>\r\n <img src=\"/img/v4/flechefine_fondtransp.gif\">Voici un portable complet et pourtant relativement l\351ger.<br></font></td>\r\n</tr>\r\n<tr>\r\n<td colspan=\"5\" align=\"right\">\r\n\t<table width=\"80\" border=\"0\" bgcolor=\"#ffffff\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t<td width=\"76\" align=\"center\" bgcolor=\"#CC0000\">\r\n\t<font face=\"arial,helvetica\" size=2 color=\"#ffffff\" style=\"font-size:11px;\"><b>1299 \200</b></font></td>\r\n\t<td><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t<tr>\r\n\t<td colspan=\"3\"><img src=\"/img/dot.gif\" width=2></td>\r\n\t</tr>\r\n\t</table>\r\n</td>\r\n</tr>\r\n</table>\r\n\t\t\t\t<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"305\" bgcolor=\"#E9EDFC\">\r\n<tr>\r\n<td><img src=\"http://www.01net.com/img/dot.gif\" height=10></td>\r\n</tr>\r\n<tr>\r\n<td background=\"/img/v4/MA/v4-sep-red-mha.gif\"><img src=\"/img/dot.gif\" height=1></td>\r\n</tr>\r\n<tr>\r\n<td align=\"right\" valign=\"top\">\r\n\t\t\t\t<A HREF=\"http://microachat.01net.com/rubrique/4366.html\" style=\"text-decoration:none;\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 10px;\">> toutes les promos</font></a>\r\n\t\t</td>\r\n</tr>\r\n</table>\r\n</td>\r\n<!-- /Ma_derpromo --> <!-- - ZONE T1 -->\r\n<!-- + ZONE T2 -->\r\n<!-- - ZONE T2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE T3 -->\r\n<!-- DEBUT MicroAchat MA_PubG -->\r\n<td valign=top align=center>\r\n<table border=0 width=320 cellpadding=0 cellspacing=0>\r\n\t<tr>\r\n\t\t<td width=305><img src=\"/img/dot.gif\" width=1 height=12><br><a href=\"http://www.smartadserver.com/call/cliccommand/45590/[timestamp]?\" target=_blank><img src=\"/img/microachat/Bandeau_FX6021.jpg\" border=0></a></td>\r\n\t\t<td><img src=\"/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_PubG --> <!-- - ZONE T3 -->\r\n<!-- + ZONE T4 -->\r\n<!-- DEBUT MicroAchat MA_PubD -->\r\n<td valign=top align=center>\r\n<table border=0 width=305 cellpadding=0 cellspacing=0>\r\n\t<tr>\r\n\t\t<td width=305><img src=\"/img/dot.gif\" width=1 height=12><br><a href=\"http://www.smartadserver.com/call/cliccommand/45591/[timestamp]?\" target=_blank><img src=\"/img/microachat/twc_305x125.jpg\" border=0></a></td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_PubD --> <!-- - ZONE T4 -->\r\n<!-- + ZONE T5 -->\r\n<!-- - ZONE T5 -->\r\n<!-- -ZONE_Tn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n\t\t\t<td valign=top>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n<!-- +ZONE_gn -->\r\n<!-- + ZONE g0 -->\r\n<!-- - ZONE g0 -->\r\n<!-- + ZONE g1 -->\r\n<!-- - ZONE g1 -->\r\n<!-- + ZONE g2 -->\r\n<!-- - ZONE g2 -->\r\n<!-- + ZONE g3 -->\r\n<!-- - ZONE g3 -->\r\n<!-- + ZONE g4 -->\r\n<!-- - ZONE g4 -->\r\n<!-- + ZONE g5 -->\r\n<!-- - ZONE g5 -->\r\n<!-- + ZONE g6 -->\r\n<!-- - ZONE g6 -->\r\n<!-- + ZONE g7 -->\r\n<!-- - ZONE g7 -->\r\n<!-- + ZONE g8 -->\r\n<!-- - ZONE g8 -->\r\n<!-- + ZONE g9 -->\r\n<!-- - ZONE g9 -->\r\n<!-- -ZONE_gn -->\r\n\t\t\t</table>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t\t\t<tr>\r\n<!-- +ZONE_Mn -->\r\n<!-- + ZONE M0 -->\r\n<!-- modele Ma_GuideAch //-->\r\n <td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" height=13><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t<tr>\r\n\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_GuideAchat_MA.gif\" vspace=1></td>\r\n\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<div style=\"border:solid 1px #FFCC00;width:100%\">\r\n\t<!-- ****DEBUT EXTRACTION OBJET XML *********** //-->\r\n<!-- ****FIN EXTRACTION OBJET XML *********** //-->\r\n<center>\r\n<!--debut insertion image //-->\r\n\t\t\t\t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t<A HREF=\"http://microachat.01net.com/article/254561.html\" style=\"text-decoration:none;color:#000000;\"><img src=\"/images/67088.jpg.res_121-111.jpg\" border=0 hspace=0 vspace=0></a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t \t<!-- fin insertion image //-->\r\n</center>\r\n<div style=\"padding:5px;\">\r\n<a href=\"http://microachat.01net.com/article/254561.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\"><b>Les graveurs de DVD</b><br></font></a>\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">Quel graveur choisir ? Quel type de format ? Quelle vitesse ? Double couche ou simple couche ? Voici tout ce qu\'il faut savoir pour faire le bon choix.</font></div>\r\n\t\t\t\t\t\t</div>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n</td> <!-- - ZONE M0 -->\r\n<!-- + ZONE M1 -->\r\n<!-- modele Ma_DirectLab //-->\r\n <td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t<tr>\r\n\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_DirectLab_MA.gif\" vspace=1></td>\r\n\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<div style=\"border:solid 1px #FFCC00;width:100%\">\r\n\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255744.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>Kodak EasyShare Printer Dock Plus :</b>\r\n\t\t\t\t\t\tvos photos 10 x 15 cm en 60 secondes</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255780.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>3DMark05 :</b>\r\n\t\t\t\t\t\tun labo 3D \340 domicile</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255691.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>DVDInfoPro 2.6</b>\r\n\t\t\t\t\t\treconna\356t CD et DVD</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255722.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">\t\t\t\t\t\t\t<b>Scaleo PA D3008, de Fujitsu-Siemens :</b>\r\n\t\t\t\t\t\tune impression d\'inachev\351</font></a></div>\r\n\t\t\t\t<div style=\"padding:4px;\">\r\n<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://microachat.01net.com/article/255514.html\" style=\"text-decoration:none;color:#000000;\"><font face=arial,helvetica size=2 color=#000000 style=\"font-size:12px;\">Carbon 5 Go : 2 500 chansons dans le creux de la main</font></a></div>\r\n\t\t\t</div></td>\r\n\t</tr>\r\n</table>\r\n</td> <!-- - ZONE M1 -->\r\n<!-- + ZONE M2 -->\r\n<!-- DEBUT MicroAchat MA_AnnTelec -->\r\n<td valign=top>\r\n<script type=\"text/javascript\">\r\nfunction regionChange()\r\n{\r\ndocument.selection.departement.options.length=0;\r\nswitch(document.selection.region.value)\r\n\t{\r\n\t\tcase \"aucun\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Nord-Pas-de-Calais\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pas-de-Calais\", \"Pas-de-Calais\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Nord\", \"Nord\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Haute-Normandie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Eure\", \"Eure\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-Maritime\", \"Seine-Maritime\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Basse-Normandie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Manche\", \"Manche\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Calvados\", \"Calvados\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Orne\", \"Orne\");\r\n\t\tbreak;\r\n\t\tcase \"Picardie\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Somme\", \"Somme\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Oise\", \"Oise\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aisne\", \"Aisne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Bretagne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Finistere\", \"Finistere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cotes-dArmor\", \"Cotes-dArmor\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Morbihan\", \"Morbihan\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ille-et-Vilaine\", \"Ille-et-Vilaine\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Pays-de-Loire\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loire-Atlantique\", \"Loire-Atlantique\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vendee\", \"Vendee\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Maine-et-Loire\", \"Maine-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Mayenne\", \"Mayenne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Sarthe\", \"Sarthe\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Centre\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Eure-et-Loir\", \"Eure-et-Loir\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loiret\", \"Loiret\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loir-et-Cher\", \"Loir-et-Cher\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Indre-et-Loire\", \"Indre-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Indre\", \"Indre\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cher\", \"Cher\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Ile-de-France\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Val-dOise\", \"Val-dOise\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Yvelines\", \"Yvelines\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Essonne\", \"Essonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-et-Marne\", \"Seine-et-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hauts-de-Seine\", \"Hauts-de-Seine\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Seine-Saint-Denis\", \"Seine-Saint-Denis\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Val-de-Marne\", \"Val-de-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Paris\", \"Paris\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Champagnes-Ardennes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ardennes\", \"Ardennes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Marne\", \"Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aube\", \"Aube\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Marne\", \"Haute-Marne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Lorraine\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vosges\", \"Vosges\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Meurthe-et-Moselle\", \"Meurthe-et-Moselle\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Meuse\", \"Meuse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Moselle\", \"Moselle\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Alsace\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Bas-Rhin\", \"Bas-Rhin\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haut-Rhin\", \"Haut-Rhin\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Franche-Compte\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Jura\", \"Jura\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Doubs\", \"Doubs\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Saone\", \"Haute-Saone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Territoire-de-Belfort\", \"Territoire-de-Belfort\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Bourgogne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Yonne\", \"Yonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Nievre\", \"Nievre\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cote-dOr\", \"Cote-dOr\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Saone-et-Loire\", \"Saone-et-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Poitou-Charentes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Deux-Sevres\", \"Deux-Sevres\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Charente-Maritime\", \"Charente-Maritime\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Charente\", \"Charente\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vienne\", \"Vienne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Limousin\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Vienne\", \"Haute-Vienne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Correze\", \"Correze\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Creuse\", \"Creuse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Auvergne\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Allier\", \"Allier\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Puy-de-Dome\", \"Puy-de-Dome\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Cantal\", \"Cantal\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Loire\", \"Haute-Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Rhone-Alpes\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Loire\", \"Loire\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Rhone\", \"Rhone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ain\", \"Ain\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ardeche\", \"Ardeche\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Drome\", \"Drome\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Isere\", \"Isere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Savoie\", \"Savoie\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Savoie\", \"Haute-Savoie\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Aquitaine\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gironde\", \"Gironde\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Landes\", \"Landes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pyrenees-Atlantiques\", \"Pyrenees-Atlantiques\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lot-et-Garonne\", \"Lot-et-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Dordogne\", \"Dordogne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Midi-Pyrenees\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lot\", \"Lot\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Tarn-et-Garonne\", \"Tarn-et-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gers\", \"Gers\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hautes-Pyrenees\", \"Hautes-Pyrenees\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Garonne\", \"Haute-Garonne\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Ariege\", \"Ariege\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Tarn\", \"Tarn\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aveyron\", \"Aveyron\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Languedoc-Roussillon\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Pyrenees-Orientales\", \"Pyrenees-Orientales\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Aude\", \"Aude\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Herault\", \"Herault\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Gard\", \"Gard\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Lozere\", \"Lozere\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Provence-Alpes-Cote-dazur\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Bouches-du-Rhone\", \"Bouches-du-Rhone\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Vaucluse\", \"Vaucluse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Alpes-de-haute-Provence\", \"Alpes-de-haute-Provence\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Hautes-Alpes\", \"Hautes-Alpes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Var\", \"Var\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Alpes-Maritimes\", \"Alpes-Maritimes\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"Corse\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Corse-du-Sud\", \"Corse-du-Sud\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Haute-Corse\", \"Haute-Corse\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t\tcase \"DomTom\" :\r\n\t\t\tvar o=new Option(\"D\351partement\", \"aucun\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Guadeloupe\", \"Guadeloupe\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Guyane\", \"Guyane\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"La-Reunion\", \"La-Reunion\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Martinique\", \"Martinique\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"Mayotte\", \"Mayotte\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\t\tvar o=new Option(\"St-Pierre-et-Miquelon\", \"St-Pierre-et-Miquelon\");\r\n\t\t\tdocument.selection.departement.options[document.selection.departement.options.length]=o;\r\n\t\tbreak;\r\n\t}\r\n}\r\nfunction deptChange()\r\n{\r\nif (document.selection.departement.value == \'Paris\')\r\n\tdocument.getElementById(\'arrondissement\').style.display = \'inline\';\r\nelse\r\n\tdocument.getElementById(\'arrondissement\').style.display = \'none\';\r\n}\r\n</script>\r\n<table width=305 cellspacing=0 cellpadding=0 border=0>\r\n\t<tr>\r\n\t\t<td valign=top>\r\n\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=160>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=145><img src=\"http://www.01net.com/img/ban/Ban_v4_AnnuaiRev_MA.gif\" vspace=1></td>\r\n\t\t\t\t<td rowspan=2 width=15><img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr><form action=\"http://micro-achat.01net.com/annuaire/recherche.php\" method=\"post\" name=\"selection\">\r\n\t\t\t\t<td bgcolor=#FFFFDD>\r\n\t\t\t\t<div style=\"border:solid 1px #FFCC00;width:100%\"><div style=\"padding:2px;\"><img src=\"http://www.01net.com/img/v4/MA/carte_revend.gif\"><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Choisir une r\351gion</b><br></font>\r\n<select name=\"region\" onChange=\"regionChange()\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"aucun\">-------------</option>\r\n<option value=\"Nord-Pas-de-Calais\">Nord-Pas-de-Calais</option>\r\n<option value=\"Haute-Normandie\">Haute-Normandie</option>\r\n<option value=\"Basse-Normandie\">Basse-Normandie</option>\r\n<option value=\"Picardie\">Picardie</option>\r\n<option value=\"Bretagne\">Bretagne</option>\r\n<option value=\"Pays-de-Loire\">Pays-de-Loire</option>\r\n<option value=\"Centre\">Centre</option>\r\n<option value=\"Ile-de-France\">Ile-de-France</option>\r\n<option value=\"Champagnes-Ardennes\">Champagne ardennes</option>\r\n<option value=\"Lorraine\">Lorraine</option>\r\n<option value=\"Alsace\">Alsace</option>\r\n<option value=\"Franche-Compte\">Franche-Compte</option>\r\n<option value=\"Bourgogne\">Bourgogne</option>\r\n<option value=\"Poitou-Charentes\">Poitou-Charentes</option>\r\n<option value=\"Limousin\">Limousin</option>\r\n<option value=\"Auvergne\">Auvergne</option>\r\n<option value=\"Rhone-Alpes\">Rhone-Alpes</option>\r\n<option value=\"Aquitaine\">Aquitaine</option>\r\n<option value=\"Midi-Pyrenees\">Midi-Pyrenees</option>\r\n<option value=\"Languedoc-Roussillon\">Languedoc roussillon</option>\r\n<option value=\"Provence-Alpes-Cote-dazur\">PACA</option>\r\n<option value=\"Corse\">Corse</option>\r\n<option value=\"DomTom\">DomTom</option>\r\n</select>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Un d\351partement</b><br></font>\r\n<select name=\"departement\" onChange=\"deptChange()\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"aucun\">-------------</option>\r\n</select>\r\n<div id=\"arrondissement\" style=\"display : none;\">\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=5><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Un arrondissement</b><br></font>\r\n<select name=\"arrondissement\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;\">\r\n<option value=\"0\">-------------</option>\r\n<option value=\"1\">I</option>\r\n<option value=\"2\">II</option>\r\n<option value=\"3\">III</option>\r\n<option value=\"4\">IV</option>\r\n<option value=\"5\">V</option>\r\n<option value=\"6\">VI</option>\r\n<option value=\"7\">VII</option>\r\n<option value=\"8\">VIII</option>\r\n<option value=\"9\">IX</option>\r\n<option value=\"10\">X</option>\r\n<option value=\"11\">XI</option>\r\n<option value=\"12\">XII</option>\r\n<option value=\"13\">XIII</option>\r\n<option value=\"14\">XIV</option>\r\n<option value=\"15\">XV</option>\r\n<option value=\"16\">XVI</option>\r\n<option value=\"17\">XVII</option>\r\n<option value=\"18\">XVIII</option>\r\n<option value=\"19\">XIX</option>\r\n<option value=\"20\">XX</option>\r\n</select>\r\n</div>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=10><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Recherche directe</b><br></font>\r\n\t\t\t\t<font face=\"Arial\" size=1 color=#000000 style=\"font-size: 10px; text-decoration:none;\"><img src=\"http://www.01net.com/img/dot.gif\" width=8 height=1>rechercher une ville<br><img src=\"http://www.01net.com/img/dot.gif\" width=8 height=1>et/ou une boutique<br></font>\r\n\t\t\t\t<input type=\"text\" name=\"recherchedirecte\" size=\"14\" style=\"display : block; font-size:9px;font-variant:arial,helvetica,sans-serif;width:130px;\" value=\"\" onFocus=\"javascript:document.selection.recherchedirecte.value=\'\'\"><br><img src=\"http://www.01net.com/img/dot.gif\" width=1 height=3><br>\r\n\t\t\t\t<img src=\"http://www.01net.com/img/dot.gif\" width=28 height=1> <input type=\"image\" src=\"http://www.01net.com/img/v4/MA/ok_bloc_recher_MA.gif\" border=\"0\">\r\n\t\t\t\t<table height=23 width=135 cellspacing=0 cellpadding=0 border=0 bgcolor=#FFEE77>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td bgcolor=#FFEE77 valign=middle align=center><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://micro-achat.01net.com/annuaire/\"><font face=\"Arial\" size=1 color=#CC0000 style=\"font-size: 11px; text-decoration:none;\"><b>Recherche avanc\351e</b></font></a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t</td>\r\n\t\t\t</tr></form>\r\n\t\t</table>\r\n\t\t</td>\r\n<!-- DEBUT MicroAchat MA_Telecharg //-->\r\n<td valign=top>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=13><br>\r\n<table width=\"145\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/v4/MA/Ban_v4_MA_telec.gif\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>\r\n\t\t<table width=\"145\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#DFECF6\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td rowspan=\"17\"><img src=\"http://www.01net.com/img/dot.gif\" width=\"6\"></td>\r\n\t\t\t\t<td><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"></td>\r\n\t\t\t\t<td rowspan=\"17\"><img src=\"http://www.01net.com/img/dot.gif\" width=\"6\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Bureautique\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Bureautique</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Traducteur, organiseur...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Multimedia\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Multim\351dia</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Photo, audio, vid\351o...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Utilitaire\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Utilitaires</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Antivirus, pilotes, gravure...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Personnaliser\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Personnaliser son PC</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Ecrans de veille, th\350mes...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Programmation\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>D\351veloppement</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Cr\351ation de logiciels, BDD...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Jeux\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Jeux</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Action, simulation...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Internet\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Internet</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Utilitaires, email, FTP...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br><img src=\"http://www.01net.com/img/v4/flechefine_fondtransp.gif\"><a href=\"http://telecharger.01net.com/windows/Loisirs\" class=\"nodeco\"><font face=\"Arial,Helvetica\" size=\"2\" color=\"#124478\" style=\"font-size: 12px;\"><b>Loisirs</b></a><br></font>\r\n\t\t\t\t<font face=\"Arial,Helvetica\" size=\"2\" color=\"#000000\" style=\"font-size: 10px;\">Humour, culture...<br></font><img src=\"http://www.01net.com/img/dot.gif\" height=\"3\"><br>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td background=\"http://www.01net.com/img/v4/MA/v4-sep-blue-mha.gif\"><img src=\"http://www.01net.com/img/dot.gif\" height=\"1\"></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_Telecharg //--> \t</tr>\r\n</table>\r\n</td>\r\n<!-- FIN MicroAchat MA_AnnTelec --> <!-- - ZONE M2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE M3 -->\r\n<!-- - ZONE M3 -->\r\n<!-- + ZONE M4 -->\r\n<!-- - ZONE M4 -->\r\n<!-- + ZONE M5 -->\r\n<!-- - ZONE M5 -->\r\n<!-- -ZONE_Mn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t<tr>\r\n<!-- +ZONE_tn -->\r\n<!-- + ZONE t0 -->\r\n<!-- - ZONE t0 -->\r\n<!-- + ZONE t1 -->\r\n<!-- - ZONE t1 -->\r\n<!-- + ZONE t2 -->\r\n<!-- - ZONE t2 -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t<table width=100% cellspacing=0 cellpadding=0 border=0>\r\n\t\t<tr>\r\n<!-- + ZONE t3 -->\r\n<!-- - ZONE t3 -->\r\n<!-- + ZONE t4 -->\r\n<!-- - ZONE t4 -->\r\n<!-- + ZONE t5 -->\r\n<!-- - ZONE t5 -->\r\n<!-- -ZONE_tn -->\r\n\t\t</tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td valign=top>\r\n\t\t<table border=0 cellpadding=0 cellspacing=0 width=*>\r\n\t\t<tr>\r\n<!-- +ZONE_dn -->\r\n<!-- + ZONE d0 -->\r\n<!-- - ZONE d0 -->\r\n<!-- + ZONE d1 -->\r\n<!-- - ZONE d1 -->\r\n<!-- + ZONE d2 -->\r\n<!-- - ZONE d2 -->\r\n<!-- + ZONE d3 -->\r\n<!-- - ZONE d3 -->\r\n<!-- + ZONE d4 -->\r\n<!-- - ZONE d4 -->\r\n<!-- + ZONE d5 -->\r\n<!-- - ZONE d5 -->\r\n<!-- + ZONE d6 -->\r\n<!-- - ZONE d6 -->\r\n<!-- + ZONE d7 -->\r\n<!-- - ZONE d7 -->\r\n<!-- + ZONE d8 -->\r\n<!-- - ZONE d8 -->\r\n<!-- + ZONE d9 -->\r\n<!-- - ZONE d9 -->\r\n<!-- -ZONE_dn -->\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t\t</table>\r\n<!-- FIN WORK -->\r\n\t\t</td>\r\n<!-- *********************************************************************FIN VENTRE********************************************************************************************************************************************** //-->\r\n\t\t<td rowspan=2 valign=top width=23 background=\"http://www.01net.com/img/v4/sep_verticale.gif\"><img src=\"http://www.01net.com/img/dot.gif\" width=23 height=1><br></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t\t<td colspan=2>\r\n\t\t\t<table border=0 cellpadding=0 cellspacing=0 width=100%>\r\n<!-- +ZONE_Bn -->\r\n<!-- + ZONE B0 -->\r\n<!-- - ZONE B0 -->\r\n<!-- + ZONE B1 -->\r\n<tr><!-- ********** DEBUT BLOC Home NosJournauxV4 //-->\r\n<td valign=top bgcolor=#FFFFFF>\r\n<img src=\"http://www.01net.com/img/ban/Ban_v4_jx.gif\"><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=1 height=15><br>\r\n<img src=\"http://www.01net.com/img/dot.gif\" width=15 height=1>\r\n<a href=\"http://www.01net.com/rubrique/3339.html\"><img src=\"http://www.01net.com/img/journaux/01I-small.gif\" border=0 vspace=0 hspace=12 align=top></a>\r\n<a href=\"http://www.01net.com/rubrique/4051.html\"><img src=\"http://www.01net.com/img/journaux/DSI-small.gif\" border=0 vspace=0 hspace=12 align=top></a>\r\n<a href=\"http://www.01net.com/rubrique/3345.html\"><img src=\"http://www.01net.com/img/journaux/DIN-small.gif
\ No newline at end of file diff --git a/snappy-1.1.0/testdata/kennedy.xls b/snappy-1.1.0/testdata/kennedy.xls Binary files differnew file mode 100644 index 0000000..9a85115 --- /dev/null +++ b/snappy-1.1.0/testdata/kennedy.xls diff --git a/snappy-1.1.0/testdata/kppkn.gtb b/snappy-1.1.0/testdata/kppkn.gtb Binary files differnew file mode 100644 index 0000000..8ccea79 --- /dev/null +++ b/snappy-1.1.0/testdata/kppkn.gtb diff --git a/snappy-1.1.0/testdata/lcet10.txt b/snappy-1.1.0/testdata/lcet10.txt new file mode 100644 index 0000000..25dda6b --- /dev/null +++ b/snappy-1.1.0/testdata/lcet10.txt @@ -0,0 +1,7519 @@ +
+
+The Project Gutenberg Etext of LOC WORKSHOP ON ELECTRONIC TEXTS
+
+
+
+
+ WORKSHOP ON ELECTRONIC TEXTS
+
+ PROCEEDINGS
+
+
+
+ Edited by James Daly
+
+
+
+
+
+
+
+ 9-10 June 1992
+
+
+ Library of Congress
+ Washington, D.C.
+
+
+
+ Supported by a Grant from the David and Lucile Packard Foundation
+
+
+ *** *** *** ****** *** *** ***
+
+
+ TABLE OF CONTENTS
+
+
+Acknowledgements
+
+Introduction
+
+Proceedings
+ Welcome
+ Prosser Gifford and Carl Fleischhauer
+
+ Session I. Content in a New Form: Who Will Use It and What Will They Do?
+ James Daly (Moderator)
+ Avra Michelson, Overview
+ Susan H. Veccia, User Evaluation
+ Joanne Freeman, Beyond the Scholar
+ Discussion
+
+ Session II. Show and Tell
+ Jacqueline Hess (Moderator)
+ Elli Mylonas, Perseus Project
+ Discussion
+ Eric M. Calaluca, Patrologia Latina Database
+ Carl Fleischhauer and Ricky Erway, American Memory
+ Discussion
+ Dorothy Twohig, The Papers of George Washington
+ Discussion
+ Maria L. Lebron, The Online Journal of Current Clinical Trials
+ Discussion
+ Lynne K. Personius, Cornell mathematics books
+ Discussion
+
+ Session III. Distribution, Networks, and Networking:
+ Options for Dissemination
+ Robert G. Zich (Moderator)
+ Clifford A. Lynch
+ Discussion
+ Howard Besser
+ Discussion
+ Ronald L. Larsen
+ Edwin B. Brownrigg
+ Discussion
+
+ Session IV. Image Capture, Text Capture, Overview of Text and
+ Image Storage Formats
+ William L. Hooton (Moderator)
+ A) Principal Methods for Image Capture of Text:
+ direct scanning, use of microform
+ Anne R. Kenney
+ Pamela Q.J. Andre
+ Judith A. Zidar
+ Donald J. Waters
+ Discussion
+ B) Special Problems: bound volumes, conservation,
+ reproducing printed halftones
+ George Thoma
+ Carl Fleischhauer
+ Discussion
+ C) Image Standards and Implications for Preservation
+ Jean Baronas
+ Patricia Battin
+ Discussion
+ D) Text Conversion: OCR vs. rekeying, standards of accuracy
+ and use of imperfect texts, service bureaus
+ Michael Lesk
+ Ricky Erway
+ Judith A. Zidar
+ Discussion
+
+ Session V. Approaches to Preparing Electronic Texts
+ Susan Hockey (Moderator)
+ Stuart Weibel
+ Discussion
+ C.M. Sperberg-McQueen
+ Discussion
+ Eric M. Calaluca
+ Discussion
+
+ Session VI. Copyright Issues
+ Marybeth Peters
+
+ Session VII. Conclusion
+ Prosser Gifford (Moderator)
+ General discussion
+
+Appendix I: Program
+
+Appendix II: Abstracts
+
+Appendix III: Directory of Participants
+
+
+ *** *** *** ****** *** *** ***
+
+
+ Acknowledgements
+
+I would like to thank Carl Fleischhauer and Prosser Gifford for the
+opportunity to learn about areas of human activity unknown to me a scant
+ten months ago, and the David and Lucile Packard Foundation for
+supporting that opportunity. The help given by others is acknowledged on
+a separate page.
+
+ 19 October 1992
+
+
+ *** *** *** ****** *** *** ***
+
+
+ INTRODUCTION
+
+The Workshop on Electronic Texts (1) drew together representatives of
+various projects and interest groups to compare ideas, beliefs,
+experiences, and, in particular, methods of placing and presenting
+historical textual materials in computerized form. Most attendees gained
+much in insight and outlook from the event. But the assembly did not
+form a new nation, or, to put it another way, the diversity of projects
+and interests was too great to draw the representatives into a cohesive,
+action-oriented body.(2)
+
+Everyone attending the Workshop shared an interest in preserving and
+providing access to historical texts. But within this broad field the
+attendees represented a variety of formal, informal, figurative, and
+literal groups, with many individuals belonging to more than one. These
+groups may be defined roughly according to the following topics or
+activities:
+
+* Imaging
+* Searchable coded texts
+* National and international computer networks
+* CD-ROM production and dissemination
+* Methods and technology for converting older paper materials into
+electronic form
+* Study of the use of digital materials by scholars and others
+
+This summary is arranged thematically and does not follow the actual
+sequence of presentations.
+
+NOTES:
+ (1) In this document, the phrase electronic text is used to mean
+ any computerized reproduction or version of a document, book,
+ article, or manuscript (including images), and not merely a machine-
+ readable or machine-searchable text.
+
+ (2) The Workshop was held at the Library of Congress on 9-10 June
+ 1992, with funding from the David and Lucile Packard Foundation.
+ The document that follows represents a summary of the presentations
+ made at the Workshop and was compiled by James DALY. This
+ introduction was written by DALY and Carl FLEISCHHAUER.
+
+
+PRESERVATION AND IMAGING
+
+Preservation, as that term is used by archivists,(3) was most explicitly
+discussed in the context of imaging. Anne KENNEY and Lynne PERSONIUS
+explained how the concept of a faithful copy and the user-friendliness of
+the traditional book have guided their project at Cornell University.(4)
+Although interested in computerized dissemination, participants in the
+Cornell project are creating digital image sets of older books in the
+public domain as a source for a fresh paper facsimile or, in a future
+phase, microfilm. The books returned to the library shelves are
+high-quality and useful replacements on acid-free paper that should last
+a long time. To date, the Cornell project has placed little or no
+emphasis on creating searchable texts; one would not be surprised to find
+that the project participants view such texts as new editions, and thus
+not as faithful reproductions.
+
+In her talk on preservation, Patricia BATTIN struck an ecumenical and
+flexible note as she endorsed the creation and dissemination of a variety
+of types of digital copies. Do not be too narrow in defining what counts
+as a preservation element, BATTIN counseled; for the present, at least,
+digital copies made with preservation in mind cannot be as narrowly
+standardized as, say, microfilm copies with the same objective. Setting
+standards precipitously can inhibit creativity, but delay can result in
+chaos, she advised.
+
+In part, BATTIN's position reflected the unsettled nature of image-format
+standards, and attendees could hear echoes of this unsettledness in the
+comments of various speakers. For example, Jean BARONAS reviewed the
+status of several formal standards moving through committees of experts;
+and Clifford LYNCH encouraged the use of a new guideline for transmitting
+document images on Internet. Testimony from participants in the National
+Agricultural Library's (NAL) Text Digitization Program and LC's American
+Memory project highlighted some of the challenges to the actual creation
+or interchange of images, including difficulties in converting
+preservation microfilm to digital form. Donald WATERS reported on the
+progress of a master plan for a project at Yale University to convert
+books on microfilm to digital image sets, Project Open Book (POB).
+
+The Workshop offered rather less of an imaging practicum than planned,
+but "how-to" hints emerge at various points, for example, throughout
+KENNEY's presentation and in the discussion of arcana such as
+thresholding and dithering offered by George THOMA and FLEISCHHAUER.
+
+NOTES:
+ (3) Although there is a sense in which any reproductions of
+ historical materials preserve the human record, specialists in the
+ field have developed particular guidelines for the creation of
+ acceptable preservation copies.
+
+ (4) Titles and affiliations of presenters are given at the
+ beginning of their respective talks and in the Directory of
+ Participants (Appendix III).
+
+
+THE MACHINE-READABLE TEXT: MARKUP AND USE
+
+The sections of the Workshop that dealt with machine-readable text tended
+to be more concerned with access and use than with preservation, at least
+in the narrow technical sense. Michael SPERBERG-McQUEEN made a forceful
+presentation on the Text Encoding Initiative's (TEI) implementation of
+the Standard Generalized Markup Language (SGML). His ideas were echoed
+by Susan HOCKEY, Elli MYLONAS, and Stuart WEIBEL. While the
+presentations made by the TEI advocates contained no practicum, their
+discussion focused on the value of the finished product, what the
+European Community calls reusability, but what may also be termed
+durability. They argued that marking up--that is, coding--a text in a
+well-conceived way will permit it to be moved from one computer
+environment to another, as well as to be used by various users. Two
+kinds of markup were distinguished: 1) procedural markup, which
+describes the features of a text (e.g., dots on a page), and 2)
+descriptive markup, which describes the structure or elements of a
+document (e.g., chapters, paragraphs, and front matter).
+
+The TEI proponents emphasized the importance of texts to scholarship.
+They explained how heavily coded (and thus analyzed and annotated) texts
+can underlie research, play a role in scholarly communication, and
+facilitate classroom teaching. SPERBERG-McQUEEN reminded listeners that
+a written or printed item (e.g., a particular edition of a book) is
+merely a representation of the abstraction we call a text. To concern
+ourselves with faithfully reproducing a printed instance of the text,
+SPERBERG-McQUEEN argued, is to concern ourselves with the representation
+of a representation ("images as simulacra for the text"). The TEI proponents'
+interest in images tends to focus on corollary materials for use in teaching,
+for example, photographs of the Acropolis to accompany a Greek text.
+
+By the end of the Workshop, SPERBERG-McQUEEN confessed to having been
+converted to a limited extent to the view that electronic images
+constitute a promising alternative to microfilming; indeed, an
+alternative probably superior to microfilming. But he was not convinced
+that electronic images constitute a serious attempt to represent text in
+electronic form. HOCKEY and MYLONAS also conceded that their experience
+at the Pierce Symposium the previous week at Georgetown University and
+the present conference at the Library of Congress had compelled them to
+reevaluate their perspective on the usefulness of text as images.
+Attendees could see that the text and image advocates were in
+constructive tension, so to say.
+
+Three nonTEI presentations described approaches to preparing
+machine-readable text that are less rigorous and thus less expensive. In
+the case of the Papers of George Washington, Dorothy TWOHIG explained
+that the digital version will provide a not-quite-perfect rendering of
+the transcribed text--some 135,000 documents, available for research
+during the decades while the perfect or print version is completed.
+Members of the American Memory team and the staff of NAL's Text
+Digitization Program (see below) also outlined a middle ground concerning
+searchable texts. In the case of American Memory, contractors produce
+texts with about 99-percent accuracy that serve as "browse" or
+"reference" versions of written or printed originals. End users who need
+faithful copies or perfect renditions must refer to accompanying sets of
+digital facsimile images or consult copies of the originals in a nearby
+library or archive. American Memory staff argued that the high cost of
+producing 100-percent accurate copies would prevent LC from offering
+access to large parts of its collections.
+
+
+THE MACHINE-READABLE TEXT: METHODS OF CONVERSION
+
+Although the Workshop did not include a systematic examination of the
+methods for converting texts from paper (or from facsimile images) into
+machine-readable form, nevertheless, various speakers touched upon this
+matter. For example, WEIBEL reported that OCLC has experimented with a
+merging of multiple optical character recognition systems that will
+reduce errors from an unacceptable rate of 5 characters out of every
+l,000 to an unacceptable rate of 2 characters out of every l,000.
+
+Pamela ANDRE presented an overview of NAL's Text Digitization Program and
+Judith ZIDAR discussed the technical details. ZIDAR explained how NAL
+purchased hardware and software capable of performing optical character
+recognition (OCR) and text conversion and used its own staff to convert
+texts. The process, ZIDAR said, required extensive editing and project
+staff found themselves considering alternatives, including rekeying
+and/or creating abstracts or summaries of texts. NAL reckoned costs at
+$7 per page. By way of contrast, Ricky ERWAY explained that American
+Memory had decided from the start to contract out conversion to external
+service bureaus. The criteria used to select these contractors were cost
+and quality of results, as opposed to methods of conversion. ERWAY noted
+that historical documents or books often do not lend themselves to OCR.
+Bound materials represent a special problem. In her experience, quality
+control--inspecting incoming materials, counting errors in samples--posed
+the most time-consuming aspect of contracting out conversion. ERWAY
+reckoned American Memory's costs at $4 per page, but cautioned that fewer
+cost-elements had been included than in NAL's figure.
+
+
+OPTIONS FOR DISSEMINATION
+
+The topic of dissemination proper emerged at various points during the
+Workshop. At the session devoted to national and international computer
+networks, LYNCH, Howard BESSER, Ronald LARSEN, and Edwin BROWNRIGG
+highlighted the virtues of Internet today and of the network that will
+evolve from Internet. Listeners could discern in these narratives a
+vision of an information democracy in which millions of citizens freely
+find and use what they need. LYNCH noted that a lack of standards
+inhibits disseminating multimedia on the network, a topic also discussed
+by BESSER. LARSEN addressed the issues of network scalability and
+modularity and commented upon the difficulty of anticipating the effects
+of growth in orders of magnitude. BROWNRIGG talked about the ability of
+packet radio to provide certain links in a network without the need for
+wiring. However, the presenters also called attention to the
+shortcomings and incongruities of present-day computer networks. For
+example: 1) Network use is growing dramatically, but much network
+traffic consists of personal communication (E-mail). 2) Large bodies of
+information are available, but a user's ability to search across their
+entirety is limited. 3) There are significant resources for science and
+technology, but few network sources provide content in the humanities.
+4) Machine-readable texts are commonplace, but the capability of the
+system to deal with images (let alone other media formats) lags behind.
+A glimpse of a multimedia future for networks, however, was provided by
+Maria LEBRON in her overview of the Online Journal of Current Clinical
+Trials (OJCCT), and the process of scholarly publishing on-line.
+
+The contrasting form of the CD-ROM disk was never systematically
+analyzed, but attendees could glean an impression from several of the
+show-and-tell presentations. The Perseus and American Memory examples
+demonstrated recently published disks, while the descriptions of the
+IBYCUS version of the Papers of George Washington and Chadwyck-Healey's
+Patrologia Latina Database (PLD) told of disks to come. According to
+Eric CALALUCA, PLD's principal focus has been on converting Jacques-Paul
+Migne's definitive collection of Latin texts to machine-readable form.
+Although everyone could share the network advocates' enthusiasm for an
+on-line future, the possibility of rolling up one's sleeves for a session
+with a CD-ROM containing both textual materials and a powerful retrieval
+engine made the disk seem an appealing vessel indeed. The overall
+discussion suggested that the transition from CD-ROM to on-line networked
+access may prove far slower and more difficult than has been anticipated.
+
+
+WHO ARE THE USERS AND WHAT DO THEY DO?
+
+Although concerned with the technicalities of production, the Workshop
+never lost sight of the purposes and uses of electronic versions of
+textual materials. As noted above, those interested in imaging discussed
+the problematical matter of digital preservation, while the TEI proponents
+described how machine-readable texts can be used in research. This latter
+topic received thorough treatment in the paper read by Avra MICHELSON.
+She placed the phenomenon of electronic texts within the context of
+broader trends in information technology and scholarly communication.
+
+Among other things, MICHELSON described on-line conferences that
+represent a vigorous and important intellectual forum for certain
+disciplines. Internet now carries more than 700 conferences, with about
+80 percent of these devoted to topics in the social sciences and the
+humanities. Other scholars use on-line networks for "distance learning."
+Meanwhile, there has been a tremendous growth in end-user computing;
+professors today are less likely than their predecessors to ask the
+campus computer center to process their data. Electronic texts are one
+key to these sophisticated applications, MICHELSON reported, and more and
+more scholars in the humanities now work in an on-line environment.
+Toward the end of the Workshop, Michael LESK presented a corollary to
+MICHELSON's talk, reporting the results of an experiment that compared
+the work of one group of chemistry students using traditional printed
+texts and two groups using electronic sources. The experiment
+demonstrated that in the event one does not know what to read, one needs
+the electronic systems; the electronic systems hold no advantage at the
+moment if one knows what to read, but neither do they impose a penalty.
+
+DALY provided an anecdotal account of the revolutionizing impact of the
+new technology on his previous methods of research in the field of classics.
+His account, by extrapolation, served to illustrate in part the arguments
+made by MICHELSON concerning the positive effects of the sudden and radical
+transformation being wrought in the ways scholars work.
+
+Susan VECCIA and Joanne FREEMAN delineated the use of electronic
+materials outside the university. The most interesting aspect of their
+use, FREEMAN said, could be seen as a paradox: teachers in elementary
+and secondary schools requested access to primary source materials but,
+at the same time, found that "primariness" itself made these materials
+difficult for their students to use.
+
+
+OTHER TOPICS
+
+Marybeth PETERS reviewed copyright law in the United States and offered
+advice during a lively discussion of this subject. But uncertainty
+remains concerning the price of copyright in a digital medium, because a
+solution remains to be worked out concerning management and synthesis of
+copyrighted and out-of-copyright pieces of a database.
+
+As moderator of the final session of the Workshop, Prosser GIFFORD directed
+discussion to future courses of action and the potential role of LC in
+advancing them. Among the recommendations that emerged were the following:
+
+ * Workshop participants should 1) begin to think about working
+ with image material, but structure and digitize it in such a
+ way that at a later stage it can be interpreted into text, and
+ 2) find a common way to build text and images together so that
+ they can be used jointly at some stage in the future, with
+ appropriate network support, because that is how users will want
+ to access these materials. The Library might encourage attempts
+ to bring together people who are working on texts and images.
+
+ * A network version of American Memory should be developed or
+ consideration should be given to making the data in it
+ available to people interested in doing network multimedia.
+ Given the current dearth of digital data that is appealing and
+ unencumbered by extremely complex rights problems, developing a
+ network version of American Memory could do much to help make
+ network multimedia a reality.
+
+ * Concerning the thorny issue of electronic deposit, LC should
+ initiate a catalytic process in terms of distributed
+ responsibility, that is, bring together the distributed
+ organizations and set up a study group to look at all the
+ issues related to electronic deposit and see where we as a
+ nation should move. For example, LC might attempt to persuade
+ one major library in each state to deal with its state
+ equivalent publisher, which might produce a cooperative project
+ that would be equitably distributed around the country, and one
+ in which LC would be dealing with a minimal number of publishers
+ and minimal copyright problems. LC must also deal with the
+ concept of on-line publishing, determining, among other things,
+ how serials such as OJCCT might be deposited for copyright.
+
+ * Since a number of projects are planning to carry out
+ preservation by creating digital images that will end up in
+ on-line or near-line storage at some institution, LC might play
+ a helpful role, at least in the near term, by accelerating how
+ to catalog that information into the Research Library Information
+ Network (RLIN) and then into OCLC, so that it would be accessible.
+ This would reduce the possibility of multiple institutions digitizing
+ the same work.
+
+
+CONCLUSION
+
+The Workshop was valuable because it brought together partisans from
+various groups and provided an occasion to compare goals and methods.
+The more committed partisans frequently communicate with others in their
+groups, but less often across group boundaries. The Workshop was also
+valuable to attendees--including those involved with American Memory--who
+came less committed to particular approaches or concepts. These
+attendees learned a great deal, and plan to select and employ elements of
+imaging, text-coding, and networked distribution that suit their
+respective projects and purposes.
+
+Still, reality rears its ugly head: no breakthrough has been achieved.
+On the imaging side, one confronts a proliferation of competing
+data-interchange standards and a lack of consensus on the role of digital
+facsimiles in preservation. In the realm of machine-readable texts, one
+encounters a reasonably mature standard but methodological difficulties
+and high costs. These latter problems, of course, represent a special
+impediment to the desire, as it is sometimes expressed in the popular
+press, "to put the [contents of the] Library of Congress on line." In
+the words of one participant, there was "no solution to the economic
+problems--the projects that are out there are surviving, but it is going
+to be a lot of work to transform the information industry, and so far the
+investment to do that is not forthcoming" (LESK, per litteras).
+
+
+ *** *** *** ****** *** *** ***
+
+
+ PROCEEDINGS
+
+
+WELCOME
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+GIFFORD * Origin of Workshop in current Librarian's desire to make LC's
+collections more widely available * Desiderata arising from the prospect
+of greater interconnectedness *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+After welcoming participants on behalf of the Library of Congress,
+American Memory (AM), and the National Demonstration Lab, Prosser
+GIFFORD, director for scholarly programs, Library of Congress, located
+the origin of the Workshop on Electronic Texts in a conversation he had
+had considerably more than a year ago with Carl FLEISCHHAUER concerning
+some of the issues faced by AM. On the assumption that numerous other
+people were asking the same questions, the decision was made to bring
+together as many of these people as possible to ask the same questions
+together. In a deeper sense, GIFFORD said, the origin of the Workshop
+lay in the desire of the current Librarian of Congress, James H.
+Billington, to make the collections of the Library, especially those
+offering unique or unusual testimony on aspects of the American
+experience, available to a much wider circle of users than those few
+people who can come to Washington to use them. This meant that the
+emphasis of AM, from the outset, has been on archival collections of the
+basic material, and on making these collections themselves available,
+rather than selected or heavily edited products.
+
+From AM's emphasis followed the questions with which the Workshop began:
+who will use these materials, and in what form will they wish to use
+them. But an even larger issue deserving mention, in GIFFORD's view, was
+the phenomenal growth in Internet connectivity. He expressed the hope
+that the prospect of greater interconnectedness than ever before would
+lead to: 1) much more cooperative and mutually supportive endeavors; 2)
+development of systems of shared and distributed responsibilities to
+avoid duplication and to ensure accuracy and preservation of unique
+materials; and 3) agreement on the necessary standards and development of
+the appropriate directories and indices to make navigation
+straightforward among the varied resources that are, and increasingly
+will be, available. In this connection, GIFFORD requested that
+participants reflect from the outset upon the sorts of outcomes they
+thought the Workshop might have. Did those present constitute a group
+with sufficient common interests to propose a next step or next steps,
+and if so, what might those be? They would return to these questions the
+following afternoon.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+FLEISCHHAUER * Core of Workshop concerns preparation and production of
+materials * Special challenge in conversion of textual materials *
+Quality versus quantity * Do the several groups represented share common
+interests? *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Carl FLEISCHHAUER, coordinator, American Memory, Library of Congress,
+emphasized that he would attempt to represent the people who perform some
+of the work of converting or preparing materials and that the core of
+the Workshop had to do with preparation and production. FLEISCHHAUER
+then drew a distinction between the long term, when many things would be
+available and connected in the ways that GIFFORD described, and the short
+term, in which AM not only has wrestled with the issue of what is the
+best course to pursue but also has faced a variety of technical
+challenges.
+
+FLEISCHHAUER remarked AM's endeavors to deal with a wide range of library
+formats, such as motion picture collections, sound-recording collections,
+and pictorial collections of various sorts, especially collections of
+photographs. In the course of these efforts, AM kept coming back to
+textual materials--manuscripts or rare printed matter, bound materials,
+etc. Text posed the greatest conversion challenge of all. Thus, the
+genesis of the Workshop, which reflects the problems faced by AM. These
+problems include physical problems. For example, those in the library
+and archive business deal with collections made up of fragile and rare
+manuscript items, bound materials, especially the notoriously brittle
+bound materials of the late nineteenth century. These are precious
+cultural artifacts, however, as well as interesting sources of
+information, and LC desires to retain and conserve them. AM needs to
+handle things without damaging them. Guillotining a book to run it
+through a sheet feeder must be avoided at all costs.
+
+Beyond physical problems, issues pertaining to quality arose. For
+example, the desire to provide users with a searchable text is affected
+by the question of acceptable level of accuracy. One hundred percent
+accuracy is tremendously expensive. On the other hand, the output of
+optical character recognition (OCR) can be tremendously inaccurate.
+Although AM has attempted to find a middle ground, uncertainty persists
+as to whether or not it has discovered the right solution.
+
+Questions of quality arose concerning images as well. FLEISCHHAUER
+contrasted the extremely high level of quality of the digital images in
+the Cornell Xerox Project with AM's efforts to provide a browse-quality
+or access-quality image, as opposed to an archival or preservation image.
+FLEISCHHAUER therefore welcomed the opportunity to compare notes.
+
+FLEISCHHAUER observed in passing that conversations he had had about
+networks have begun to signal that for various forms of media a
+determination may be made that there is a browse-quality item, or a
+distribution-and-access-quality item that may coexist in some systems
+with a higher quality archival item that would be inconvenient to send
+through the network because of its size. FLEISCHHAUER referred, of
+course, to images more than to searchable text.
+
+As AM considered those questions, several conceptual issues arose: ought
+AM occasionally to reproduce materials entirely through an image set, at
+other times, entirely through a text set, and in some cases, a mix?
+There probably would be times when the historical authenticity of an
+artifact would require that its image be used. An image might be
+desirable as a recourse for users if one could not provide 100-percent
+accurate text. Again, AM wondered, as a practical matter, if a
+distinction could be drawn between rare printed matter that might exist
+in multiple collections--that is, in ten or fifteen libraries. In such
+cases, the need for perfect reproduction would be less than for unique
+items. Implicit in his remarks, FLEISCHHAUER conceded, was the admission
+that AM has been tilting strongly towards quantity and drawing back a
+little from perfect quality. That is, it seemed to AM that society would
+be better served if more things were distributed by LC--even if they were
+not quite perfect--than if fewer things, perfectly represented, were
+distributed. This was stated as a proposition to be tested, with
+responses to be gathered from users.
+
+In thinking about issues related to reproduction of materials and seeing
+other people engaged in parallel activities, AM deemed it useful to
+convene a conference. Hence, the Workshop. FLEISCHHAUER thereupon
+surveyed the several groups represented: 1) the world of images (image
+users and image makers); 2) the world of text and scholarship and, within
+this group, those concerned with language--FLEISCHHAUER confessed to finding
+delightful irony in the fact that some of the most advanced thinkers on
+computerized texts are those dealing with ancient Greek and Roman materials;
+3) the network world; and 4) the general world of library science, which
+includes people interested in preservation and cataloging.
+
+FLEISCHHAUER concluded his remarks with special thanks to the David and
+Lucile Packard Foundation for its support of the meeting, the American
+Memory group, the Office for Scholarly Programs, the National
+Demonstration Lab, and the Office of Special Events. He expressed the
+hope that David Woodley Packard might be able to attend, noting that
+Packard's work and the work of the foundation had sponsored a number of
+projects in the text area.
+
+ ******
+
+SESSION I. CONTENT IN A NEW FORM: WHO WILL USE IT AND WHAT WILL THEY DO?
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DALY * Acknowledgements * A new Latin authors disk * Effects of the new
+technology on previous methods of research *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Serving as moderator, James DALY acknowledged the generosity of all the
+presenters for giving of their time, counsel, and patience in planning
+the Workshop, as well as of members of the American Memory project and
+other Library of Congress staff, and the David and Lucile Packard
+Foundation and its executive director, Colburn S. Wilbur.
+
+DALY then recounted his visit in March to the Center for Electronic Texts
+in the Humanities (CETH) and the Department of Classics at Rutgers
+University, where an old friend, Lowell Edmunds, introduced him to the
+department's IBYCUS scholarly personal computer, and, in particular, the
+new Latin CD-ROM, containing, among other things, almost all classical
+Latin literary texts through A.D. 200. Packard Humanities Institute
+(PHI), Los Altos, California, released this disk late in 1991, with a
+nominal triennial licensing fee.
+
+Playing with the disk for an hour or so at Rutgers brought home to DALY
+at once the revolutionizing impact of the new technology on his previous
+methods of research. Had this disk been available two or three years
+earlier, DALY contended, when he was engaged in preparing a commentary on
+Book 10 of Virgil's Aeneid for Cambridge University Press, he would not
+have required a forty-eight-square-foot table on which to spread the
+numerous, most frequently consulted items, including some ten or twelve
+concordances to key Latin authors, an almost equal number of lexica to
+authors who lacked concordances, and where either lexica or concordances
+were lacking, numerous editions of authors antedating and postdating Virgil.
+
+Nor, when checking each of the average six to seven words contained in
+the Virgilian hexameter for its usage elsewhere in Virgil's works or
+other Latin authors, would DALY have had to maintain the laborious
+mechanical process of flipping through these concordances, lexica, and
+editions each time. Nor would he have had to frequent as often the
+Milton S. Eisenhower Library at the Johns Hopkins University to consult
+the Thesaurus Linguae Latinae. Instead of devoting countless hours, or
+the bulk of his research time, to gathering data concerning Virgil's use
+of words, DALY--now freed by PHI's Latin authors disk from the
+tyrannical, yet in some ways paradoxically happy scholarly drudgery--
+would have been able to devote that same bulk of time to analyzing and
+interpreting Virgilian verbal usage.
+
+Citing Theodore Brunner, Gregory Crane, Elli MYLONAS, and Avra MICHELSON,
+DALY argued that this reversal in his style of work, made possible by the
+new technology, would perhaps have resulted in better, more productive
+research. Indeed, even in the course of his browsing the Latin authors
+disk at Rutgers, its powerful search, retrieval, and highlighting
+capabilities suggested to him several new avenues of research into
+Virgil's use of sound effects. This anecdotal account, DALY maintained,
+may serve to illustrate in part the sudden and radical transformation
+being wrought in the ways scholars work.
+
+ ******
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+MICHELSON * Elements related to scholarship and technology * Electronic
+texts within the context of broader trends within information technology
+and scholarly communication * Evaluation of the prospects for the use of
+electronic texts * Relationship of electronic texts to processes of
+scholarly communication in humanities research * New exchange formats
+created by scholars * Projects initiated to increase scholarly access to
+converted text * Trend toward making electronic resources available
+through research and education networks * Changes taking place in
+scholarly communication among humanities scholars * Network-mediated
+scholarship transforming traditional scholarly practices * Key
+information technology trends affecting the conduct of scholarly
+communication over the next decade * The trend toward end-user computing
+* The trend toward greater connectivity * Effects of these trends * Key
+transformations taking place * Summary of principal arguments *
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Avra MICHELSON, Archival Research and Evaluation Staff, National Archives
+and Records Administration (NARA), argued that establishing who will use
+electronic texts and what they will use them for involves a consideration
+of both information technology and scholarship trends. This
+consideration includes several elements related to scholarship and
+technology: 1) the key trends in information technology that are most
+relevant to scholarship; 2) the key trends in the use of currently
+available technology by scholars in the nonscientific community; and 3)
+the relationship between these two very distinct but interrelated trends.
+The investment in understanding this relationship being made by
+information providers, technologists, and public policy developers, as
+well as by scholars themselves, seems to be pervasive and growing,
+MICHELSON contended. She drew on collaborative work with Jeff Rothenberg
+on the scholarly use of technology.
+
+MICHELSON sought to place the phenomenon of electronic texts within the
+context of broader trends within information technology and scholarly
+communication. She argued that electronic texts are of most use to
+researchers to the extent that the researchers' working context (i.e.,
+their relevant bibliographic sources, collegial feedback, analytic tools,
+notes, drafts, etc.), along with their field's primary and secondary
+sources, also is accessible in electronic form and can be integrated in
+ways that are unique to the on-line environment.
+
+Evaluation of the prospects for the use of electronic texts includes two
+elements: 1) an examination of the ways in which researchers currently
+are using electronic texts along with other electronic resources, and 2)
+an analysis of key information technology trends that are affecting the
+long-term conduct of scholarly communication. MICHELSON limited her
+discussion of the use of electronic texts to the practices of humanists
+and noted that the scientific community was outside the panel's overview.
+
+MICHELSON examined the nature of the current relationship of electronic
+texts in particular, and electronic resources in general, to what she
+maintained were, essentially, five processes of scholarly communication
+in humanities research. Researchers 1) identify sources, 2) communicate
+with their colleagues, 3) interpret and analyze data, 4) disseminate
+their research findings, and 5) prepare curricula to instruct the next
+generation of scholars and students. This examination would produce a
+clearer understanding of the synergy among these five processes that
+fuels the tendency of the use of electronic resources for one process to
+stimulate its use for other processes of scholarly communication.
+
+For the first process of scholarly communication, the identification of
+sources, MICHELSON remarked the opportunity scholars now enjoy to
+supplement traditional word-of-mouth searches for sources among their
+colleagues with new forms of electronic searching. So, for example,
+instead of having to visit the library, researchers are able to explore
+descriptions of holdings in their offices. Furthermore, if their own
+institutions' holdings prove insufficient, scholars can access more than
+200 major American library catalogues over Internet, including the
+universities of California, Michigan, Pennsylvania, and Wisconsin.
+Direct access to the bibliographic databases offers intellectual
+empowerment to scholars by presenting a comprehensive means of browsing
+through libraries from their homes and offices at their convenience.
+
+The second process of communication involves communication among
+scholars. Beyond the most common methods of communication, scholars are
+using E-mail and a variety of new electronic communications formats
+derived from it for further academic interchange. E-mail exchanges are
+growing at an astonishing rate, reportedly 15 percent a month. They
+currently constitute approximately half the traffic on research and
+education networks. Moreover, the global spread of E-mail has been so
+rapid that it is now possible for American scholars to use it to
+communicate with colleagues in close to 140 other countries.
+
+Other new exchange formats created by scholars and operating on Internet
+include more than 700 conferences, with about 80 percent of these devoted
+to topics in the social sciences and humanities. The rate of growth of
+these scholarly electronic conferences also is astonishing. From l990 to
+l991, 200 new conferences were identified on Internet. From October 1991
+to June 1992, an additional 150 conferences in the social sciences and
+humanities were added to this directory of listings. Scholars have
+established conferences in virtually every field, within every different
+discipline. For example, there are currently close to 600 active social
+science and humanities conferences on topics such as art and
+architecture, ethnomusicology, folklore, Japanese culture, medical
+education, and gifted and talented education. The appeal to scholars of
+communicating through these conferences is that, unlike any other medium,
+electronic conferences today provide a forum for global communication
+with peers at the front end of the research process.
+
+Interpretation and analysis of sources constitutes the third process of
+scholarly communication that MICHELSON discussed in terms of texts and
+textual resources. The methods used to analyze sources fall somewhere on
+a continuum from quantitative analysis to qualitative analysis.
+Typically, evidence is culled and evaluated using methods drawn from both
+ends of this continuum. At one end, quantitative analysis involves the
+use of mathematical processes such as a count of frequencies and
+distributions of occurrences or, on a higher level, regression analysis.
+At the other end of the continuum, qualitative analysis typically
+involves nonmathematical processes oriented toward language
+interpretation or the building of theory. Aspects of this work involve
+the processing--either manual or computational--of large and sometimes
+massive amounts of textual sources, although the use of nontextual
+sources as evidence, such as photographs, sound recordings, film footage,
+and artifacts, is significant as well.
+
+Scholars have discovered that many of the methods of interpretation and
+analysis that are related to both quantitative and qualitative methods
+are processes that can be performed by computers. For example, computers
+can count. They can count brush strokes used in a Rembrandt painting or
+perform regression analysis for understanding cause and effect. By means
+of advanced technologies, computers can recognize patterns, analyze text,
+and model concepts. Furthermore, computers can complete these processes
+faster with more sources and with greater precision than scholars who
+must rely on manual interpretation of data. But if scholars are to use
+computers for these processes, source materials must be in a form
+amenable to computer-assisted analysis. For this reason many scholars,
+once they have identified the sources that are key to their research, are
+converting them to machine-readable form. Thus, a representative example
+of the numerous textual conversion projects organized by scholars around
+the world in recent years to support computational text analysis is the
+TLG, the Thesaurus Linguae Graecae. This project is devoted to
+converting the extant ancient texts of classical Greece. (Editor's note:
+according to the TLG Newsletter of May l992, TLG was in use in thirty-two
+different countries. This figure updates MICHELSON's previous count by one.)
+
+The scholars performing these conversions have been asked to recognize
+that the electronic sources they are converting for one use possess value
+for other research purposes as well. As a result, during the past few
+years, humanities scholars have initiated a number of projects to
+increase scholarly access to converted text. So, for example, the Text
+Encoding Initiative (TEI), about which more is said later in the program,
+was established as an effort by scholars to determine standard elements
+and methods for encoding machine-readable text for electronic exchange.
+In a second effort to facilitate the sharing of converted text, scholars
+have created a new institution, the Center for Electronic Texts in the
+Humanities (CETH). The center estimates that there are 8,000 series of
+source texts in the humanities that have been converted to
+machine-readable form worldwide. CETH is undertaking an international
+search for converted text in the humanities, compiling it into an
+electronic library, and preparing bibliographic descriptions of the
+sources for the Research Libraries Information Network's (RLIN)
+machine-readable data file. The library profession has begun to initiate
+large conversion projects as well, such as American Memory.
+
+While scholars have been making converted text available to one another,
+typically on disk or on CD-ROM, the clear trend is toward making these
+resources available through research and education networks. Thus, the
+American and French Research on the Treasury of the French Language
+(ARTFL) and the Dante Project are already available on Internet.
+MICHELSON summarized this section on interpretation and analysis by
+noting that: 1) increasing numbers of humanities scholars in the library
+community are recognizing the importance to the advancement of
+scholarship of retrospective conversion of source materials in the arts
+and humanities; and 2) there is a growing realization that making the
+sources available on research and education networks maximizes their
+usefulness for the analysis performed by humanities scholars.
+
+The fourth process of scholarly communication is dissemination of
+research findings, that is, publication. Scholars are using existing
+research and education networks to engineer a new type of publication:
+scholarly-controlled journals that are electronically produced and
+disseminated. Although such journals are still emerging as a
+communication format, their number has grown, from approximately twelve
+to thirty-six during the past year (July 1991 to June 1992). Most of
+these electronic scholarly journals are devoted to topics in the
+humanities. As with network conferences, scholarly enthusiasm for these
+electronic journals stems from the medium's unique ability to advance
+scholarship in a way that no other medium can do by supporting global
+feedback and interchange, practically in real time, early in the research
+process. Beyond scholarly journals, MICHELSON remarked the delivery of
+commercial full-text products, such as articles in professional journals,
+newsletters, magazines, wire services, and reference sources. These are
+being delivered via on-line local library catalogues, especially through
+CD-ROMs. Furthermore, according to MICHELSON, there is general optimism
+that the copyright and fees issues impeding the delivery of full text on
+existing research and education networks soon will be resolved.
+
+The final process of scholarly communication is curriculum development
+and instruction, and this involves the use of computer information
+technologies in two areas. The first is the development of
+computer-oriented instructional tools, which includes simulations,
+multimedia applications, and computer tools that are used to assist in
+the analysis of sources in the classroom, etc. The Perseus Project, a
+database that provides a multimedia curriculum on classical Greek
+civilization, is a good example of the way in which entire curricula are
+being recast using information technologies. It is anticipated that the
+current difficulty in exchanging electronically computer-based
+instructional software, which in turn makes it difficult for one scholar
+to build upon the work of others, will be resolved before too long.
+Stand-alone curricular applications that involve electronic text will be
+sharable through networks, reinforcing their significance as intellectual
+products as well as instructional tools.
+
+The second aspect of electronic learning involves the use of research and
+education networks for distance education programs. Such programs
+interactively link teachers with students in geographically scattered
+locations and rely on the availability of electronic instructional
+resources. Distance education programs are gaining wide appeal among
+state departments of education because of their demonstrated capacity to
+bring advanced specialized course work and an array of experts to many
+classrooms. A recent report found that at least 32 states operated at
+least one statewide network for education in 1991, with networks under
+development in many of the remaining states.
+
+MICHELSON summarized this section by noting two striking changes taking
+place in scholarly communication among humanities scholars. First is the
+extent to which electronic text in particular, and electronic resources
+in general, are being infused into each of the five processes described
+above. As mentioned earlier, there is a certain synergy at work here.
+The use of electronic resources for one process tends to stimulate its
+use for other processes, because the chief course of movement is toward a
+comprehensive on-line working context for humanities scholars that
+includes on-line availability of key bibliographies, scholarly feedback,
+sources, analytical tools, and publications. MICHELSON noted further
+that the movement toward a comprehensive on-line working context for
+humanities scholars is not new. In fact, it has been underway for more
+than forty years in the humanities, since Father Roberto Busa began
+developing an electronic concordance of the works of Saint Thomas Aquinas
+in 1949. What we are witnessing today, MICHELSON contended, is not the
+beginning of this on-line transition but, for at least some humanities
+scholars, the turning point in the transition from a print to an
+electronic working context. Coinciding with the on-line transition, the
+second striking change is the extent to which research and education
+networks are becoming the new medium of scholarly communication. The
+existing Internet and the pending National Education and Research Network
+(NREN) represent the new meeting ground where scholars are going for
+bibliographic information, scholarly dialogue and feedback, the most
+current publications in their field, and high-level educational
+offerings. Traditional scholarly practices are undergoing tremendous
+transformations as a result of the emergence and growing prominence of
+what is called network-mediated scholarship.
+
+MICHELSON next turned to the second element of the framework she proposed
+at the outset of her talk for evaluating the prospects for electronic
+text, namely the key information technology trends affecting the conduct
+of scholarly communication over the next decade: 1) end-user computing
+and 2) connectivity.
+
+End-user computing means that the person touching the keyboard, or
+performing computations, is the same as the person who initiates or
+consumes the computation. The emergence of personal computers, along
+with a host of other forces, such as ubiquitous computing, advances in
+interface design, and the on-line transition, is prompting the consumers
+of computation to do their own computing, and is thus rendering obsolete
+the traditional distinction between end users and ultimate users.
+
+The trend toward end-user computing is significant to consideration of
+the prospects for electronic texts because it means that researchers are
+becoming more adept at doing their own computations and, thus, more
+competent in the use of electronic media. By avoiding programmer
+intermediaries, computation is becoming central to the researcher's
+thought process. This direct involvement in computing is changing the
+researcher's perspective on the nature of research itself, that is, the
+kinds of questions that can be posed, the analytical methodologies that
+can be used, the types and amount of sources that are appropriate for
+analyses, and the form in which findings are presented. The trend toward
+end-user computing means that, increasingly, electronic media and
+computation are being infused into all processes of humanities
+scholarship, inspiring remarkable transformations in scholarly
+communication.
+
+The trend toward greater connectivity suggests that researchers are using
+computation increasingly in network environments. Connectivity is
+important to scholarship because it erases the distance that separates
+students from teachers and scholars from their colleagues, while allowing
+users to access remote databases, share information in many different
+media, connect to their working context wherever they are, and
+collaborate in all phases of research.
+
+The combination of the trend toward end-user computing and the trend
+toward connectivity suggests that the scholarly use of electronic
+resources, already evident among some researchers, will soon become an
+established feature of scholarship. The effects of these trends, along
+with ongoing changes in scholarly practices, point to a future in which
+humanities researchers will use computation and electronic communication
+to help them formulate ideas, access sources, perform research,
+collaborate with colleagues, seek peer review, publish and disseminate
+results, and engage in many other professional and educational activities.
+
+In summary, MICHELSON emphasized four points: 1) A portion of humanities
+scholars already consider electronic texts the preferred format for
+analysis and dissemination. 2) Scholars are using these electronic
+texts, in conjunction with other electronic resources, in all the
+processes of scholarly communication. 3) The humanities scholars'
+working context is in the process of changing from print technology to
+electronic technology, in many ways mirroring transformations that have
+occurred or are occurring within the scientific community. 4) These
+changes are occurring in conjunction with the development of a new
+communication medium: research and education networks that are
+characterized by their capacity to advance scholarship in a wholly unique
+way.
+
+MICHELSON also reiterated her three principal arguments: l) Electronic
+texts are best understood in terms of the relationship to other
+electronic resources and the growing prominence of network-mediated
+scholarship. 2) The prospects for electronic texts lie in their capacity
+to be integrated into the on-line network of electronic resources that
+comprise the new working context for scholars. 3) Retrospective conversion
+of portions of the scholarly record should be a key strategy as information
+providers respond to changes in scholarly communication practices.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+VECCIA * AM's evaluation project and public users of electronic resources
+* AM and its design * Site selection and evaluating the Macintosh
+implementation of AM * Characteristics of the six public libraries
+selected * Characteristics of AM's users in these libraries * Principal
+ways AM is being used *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Susan VECCIA, team leader, and Joanne FREEMAN, associate coordinator,
+American Memory, Library of Congress, gave a joint presentation. First,
+by way of introduction, VECCIA explained her and FREEMAN's roles in
+American Memory (AM). Serving principally as an observer, VECCIA has
+assisted with the evaluation project of AM, placing AM collections in a
+variety of different sites around the country and helping to organize and
+implement that project. FREEMAN has been an associate coordinator of AM
+and has been involved principally with the interpretative materials,
+preparing some of the electronic exhibits and printed historical
+information that accompanies AM and that is requested by users. VECCIA
+and FREEMAN shared anecdotal observations concerning AM with public users
+of electronic resources. Notwithstanding a fairly structured evaluation
+in progress, both VECCIA and FREEMAN chose not to report on specifics in
+terms of numbers, etc., because they felt it was too early in the
+evaluation project to do so.
+
+AM is an electronic archive of primary source materials from the Library
+of Congress, selected collections representing a variety of formats--
+photographs, graphic arts, recorded sound, motion pictures, broadsides,
+and soon, pamphlets and books. In terms of the design of this system,
+the interpretative exhibits have been kept separate from the primary
+resources, with good reason. Accompanying this collection are printed
+documentation and user guides, as well as guides that FREEMAN prepared for
+teachers so that they may begin using the content of the system at once.
+
+VECCIA described the evaluation project before talking about the public
+users of AM, limiting her remarks to public libraries, because FREEMAN
+would talk more specifically about schools from kindergarten to twelfth
+grade (K-12). Having started in spring 1991, the evaluation currently
+involves testing of the Macintosh implementation of AM. Since the
+primary goal of this evaluation is to determine the most appropriate
+audience or audiences for AM, very different sites were selected. This
+makes evaluation difficult because of the varying degrees of technology
+literacy among the sites. AM is situated in forty-four locations, of
+which six are public libraries and sixteen are schools. Represented
+among the schools are elementary, junior high, and high schools.
+District offices also are involved in the evaluation, which will
+conclude in summer 1993.
+
+VECCIA focused the remainder of her talk on the six public libraries, one
+of which doubles as a state library. They represent a range of
+geographic areas and a range of demographic characteristics. For
+example, three are located in urban settings, two in rural settings, and
+one in a suburban setting. A range of technical expertise is to be found
+among these facilities as well. For example, one is an "Apple library of
+the future," while two others are rural one-room libraries--in one, AM
+sits at the front desk next to a tractor manual.
+
+All public libraries have been extremely enthusiastic, supportive, and
+appreciative of the work that AM has been doing. VECCIA characterized
+various users: Most users in public libraries describe themselves as
+general readers; of the students who use AM in the public libraries,
+those in fourth grade and above seem most interested. Public libraries
+in rural sites tend to attract retired people, who have been highly
+receptive to AM. Users tend to fall into two additional categories:
+people interested in the content and historical connotations of these
+primary resources, and those fascinated by the technology. The format
+receiving the most comments has been motion pictures. The adult users in
+public libraries are more comfortable with IBM computers, whereas young
+people seem comfortable with either IBM or Macintosh, although most of
+them seem to come from a Macintosh background. This same tendency is
+found in the schools.
+
+What kinds of things do users do with AM? In a public library there are
+two main goals or ways that AM is being used: as an individual learning
+tool, and as a leisure activity. Adult learning was one area that VECCIA
+would highlight as a possible application for a tool such as AM. She
+described a patron of a rural public library who comes in every day on
+his lunch hour and literally reads AM, methodically going through the
+collection image by image. At the end of his hour he makes an electronic
+bookmark, puts it in his pocket, and returns to work. The next day he
+comes in and resumes where he left off. Interestingly, this man had
+never been in the library before he used AM. In another small, rural
+library, the coordinator reports that AM is a popular activity for some
+of the older, retired people in the community, who ordinarily would not
+use "those things,"--computers. Another example of adult learning in
+public libraries is book groups, one of which, in particular, is using AM
+as part of its reading on industrialization, integration, and urbanization
+in the early 1900s.
+
+One library reports that a family is using AM to help educate their
+children. In another instance, individuals from a local museum came in
+to use AM to prepare an exhibit on toys of the past. These two examples
+emphasize the mission of the public library as a cultural institution,
+reaching out to people who do not have the same resources available to
+those who live in a metropolitan area or have access to a major library.
+One rural library reports that junior high school students in large
+numbers came in one afternoon to use AM for entertainment. A number of
+public libraries reported great interest among postcard collectors in the
+Detroit collection, which was essentially a collection of images used on
+postcards around the turn of the century. Train buffs are similarly
+interested because that was a time of great interest in railroading.
+People, it was found, relate to things that they know of firsthand. For
+example, in both rural public libraries where AM was made available,
+observers reported that the older people with personal remembrances of
+the turn of the century were gravitating to the Detroit collection.
+These examples served to underscore MICHELSON's observation re the
+integration of electronic tools and ideas--that people learn best when
+the material relates to something they know.
+
+VECCIA made the final point that in many cases AM serves as a
+public-relations tool for the public libraries that are testing it. In
+one case, AM is being used as a vehicle to secure additional funding for
+the library. In another case, AM has served as an inspiration to the
+staff of a major local public library in the South to think about ways to
+make its own collection of photographs more accessible to the public.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+FREEMAN * AM and archival electronic resources in a school environment *
+Questions concerning context * Questions concerning the electronic format
+itself * Computer anxiety * Access and availability of the system *
+Hardware * Strengths gained through the use of archival resources in
+schools *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Reiterating an observation made by VECCIA, that AM is an archival
+resource made up of primary materials with very little interpretation,
+FREEMAN stated that the project has attempted to bridge the gap between
+these bare primary materials and a school environment, and in that cause
+has created guided introductions to AM collections. Loud demand from the
+educational community, chiefly from teachers working with the upper
+grades of elementary school through high school, greeted the announcement
+that AM would be tested around the country.
+
+FREEMAN reported not only on what was learned about AM in a school
+environment, but also on several universal questions that were raised
+concerning archival electronic resources in schools. She discussed
+several strengths of this type of material in a school environment as
+opposed to a highly structured resource that offers a limited number of
+paths to follow.
+
+FREEMAN first raised several questions about using AM in a school
+environment. There is often some difficulty in developing a sense of
+what the system contains. Many students sit down at a computer resource
+and assume that, because AM comes from the Library of Congress, all of
+American history is now at their fingertips. As a result of that sort of
+mistaken judgment, some students are known to conclude that AM contains
+nothing of use to them when they look for one or two things and do not
+find them. It is difficult to discover that middle ground where one has
+a sense of what the system contains. Some students grope toward the idea
+of an archive, a new idea to them, since they have not previously
+experienced what it means to have access to a vast body of somewhat
+random information.
+
+Other questions raised by FREEMAN concerned the electronic format itself.
+For instance, in a school environment it is often difficult both for
+teachers and students to gain a sense of what it is they are viewing.
+They understand that it is a visual image, but they do not necessarily
+know that it is a postcard from the turn of the century, a panoramic
+photograph, or even machine-readable text of an eighteenth-century
+broadside, a twentieth-century printed book, or a nineteenth-century
+diary. That distinction is often difficult for people in a school
+environment to grasp. Because of that, it occasionally becomes difficult
+to draw conclusions from what one is viewing.
+
+FREEMAN also noted the obvious fear of the computer, which constitutes a
+difficulty in using an electronic resource. Though students in general
+did not suffer from this anxiety, several older students feared that they
+were computer-illiterate, an assumption that became self-fulfilling when
+they searched for something but failed to find it. FREEMAN said she
+believed that some teachers also fear computer resources, because they
+believe they lack complete control. FREEMAN related the example of
+teachers shooing away students because it was not their time to use the
+system. This was a case in which the situation had to be extremely
+structured so that the teachers would not feel that they had lost their
+grasp on what the system contained.
+
+A final question raised by FREEMAN concerned access and availability of
+the system. She noted the occasional existence of a gap in communication
+between school librarians and teachers. Often AM sits in a school
+library and the librarian is the person responsible for monitoring the
+system. Teachers do not always take into their world new library
+resources about which the librarian is excited. Indeed, at the sites
+where AM had been used most effectively within a library, the librarian
+was required to go to specific teachers and instruct them in its use. As
+a result, several AM sites will have in-service sessions over a summer,
+in the hope that perhaps, with a more individualized link, teachers will
+be more likely to use the resource.
+
+A related issue in the school context concerned the number of
+workstations available at any one location. Centralization of equipment
+at the district level, with teachers invited to download things and walk
+away with them, proved unsuccessful because the hours these offices were
+open were also school hours.
+
+Another issue was hardware. As VECCIA observed, a range of sites exists,
+some technologically advanced and others essentially acquiring their
+first computer for the primary purpose of using it in conjunction with
+AM's testing. Users at technologically sophisticated sites want even
+more sophisticated hardware, so that they can perform even more
+sophisticated tasks with the materials in AM. But once they acquire a
+newer piece of hardware, they must learn how to use that also; at an
+unsophisticated site it takes an extremely long time simply to become
+accustomed to the computer, not to mention the program offered with the
+computer. All of these small issues raise one large question, namely,
+are systems like AM truly rewarding in a school environment, or do they
+simply act as innovative toys that do little more than spark interest?
+
+FREEMAN contended that the evaluation project has revealed several strengths
+that were gained through the use of archival resources in schools, including:
+
+ * Psychic rewards from using AM as a vast, rich database, with
+ teachers assigning various projects to students--oral presentations,
+ written reports, a documentary, a turn-of-the-century newspaper--
+ projects that start with the materials in AM but are completed using
+ other resources; AM thus is used as a research tool in conjunction
+ with other electronic resources, as well as with books and items in
+ the library where the system is set up.
+
+ * Students are acquiring computer literacy in a humanities context.
+
+ * This sort of system is overcoming the isolation between disciplines
+ that often exists in schools. For example, many English teachers are
+ requiring their students to write papers on historical topics
+ represented in AM. Numerous teachers have reported that their
+ students are learning critical thinking skills using the system.
+
+ * On a broader level, AM is introducing primary materials, not only
+ to students but also to teachers, in an environment where often
+ simply none exist--an exciting thing for the students because it
+ helps them learn to conduct research, to interpret, and to draw
+ their own conclusions. In learning to conduct research and what it
+ means, students are motivated to seek knowledge. That relates to
+ another positive outcome--a high level of personal involvement of
+ students with the materials in this system and greater motivation to
+ conduct their own research and draw their own conclusions.
+
+ * Perhaps the most ironic strength of these kinds of archival
+ electronic resources is that many of the teachers AM interviewed
+ were desperate, it is no exaggeration to say, not only for primary
+ materials but for unstructured primary materials. These would, they
+ thought, foster personally motivated research, exploration, and
+ excitement in their students. Indeed, these materials have done
+ just that. Ironically, however, this lack of structure produces
+ some of the confusion to which the newness of these kinds of
+ resources may also contribute. The key to effective use of archival
+ products in a school environment is a clear, effective introduction
+ to the system and to what it contains.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Nothing known, quantitatively, about the number of
+humanities scholars who must see the original versus those who would
+settle for an edited transcript, or about the ways in which humanities
+scholars are using information technology * Firm conclusions concerning
+the manner and extent of the use of supporting materials in print
+provided by AM to await completion of evaluative study * A listener's
+reflections on additional applications of electronic texts * Role of
+electronic resources in teaching elementary research skills to students *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+During the discussion that followed the presentations by MICHELSON,
+VECCIA, and FREEMAN, additional points emerged.
+
+LESK asked if MICHELSON could give any quantitative estimate of the
+number of humanities scholars who must see or want to see the original,
+or the best possible version of the material, versus those who typically
+would settle for an edited transcript. While unable to provide a figure,
+she offered her impressions as an archivist who has done some reference
+work and has discussed this issue with other archivists who perform
+reference, that those who use archives and those who use primary sources
+for what would be considered very high-level scholarly research, as
+opposed to, say, undergraduate papers, were few in number, especially
+given the public interest in using primary sources to conduct
+genealogical or avocational research and the kind of professional
+research done by people in private industry or the federal government.
+More important in MICHELSON's view was that, quantitatively, nothing is
+known about the ways in which, for example, humanities scholars are using
+information technology. No studies exist to offer guidance in creating
+strategies. The most recent study was conducted in 1985 by the American
+Council of Learned Societies (ACLS), and what it showed was that 50
+percent of humanities scholars at that time were using computers. That
+constitutes the extent of our knowledge.
+
+Concerning AM's strategy for orienting people toward the scope of
+electronic resources, FREEMAN could offer no hard conclusions at this
+point, because she and her colleagues were still waiting to see,
+particularly in the schools, what has been made of their efforts. Within
+the system, however, AM has provided what are called electronic exhibits-
+-such as introductions to time periods and materials--and these are
+intended to offer a student user a sense of what a broadside is and what
+it might tell her or him. But FREEMAN conceded that the project staff
+would have to talk with students next year, after teachers have had a
+summer to use the materials, and attempt to discover what the students
+were learning from the materials. In addition, FREEMAN described
+supporting materials in print provided by AM at the request of local
+teachers during a meeting held at LC. These included time lines,
+bibliographies, and other materials that could be reproduced on a
+photocopier in a classroom. Teachers could walk away with and use these,
+and in this way gain a better understanding of the contents. But again,
+reaching firm conclusions concerning the manner and extent of their use
+would have to wait until next year.
+
+As to the changes she saw occurring at the National Archives and Records
+Administration (NARA) as a result of the increasing emphasis on
+technology in scholarly research, MICHELSON stated that NARA at this
+point was absorbing the report by her and Jeff Rothenberg addressing
+strategies for the archival profession in general, although not for the
+National Archives specifically. NARA is just beginning to establish its
+role and what it can do. In terms of changes and initiatives that NARA
+can take, no clear response could be given at this time.
+
+GREENFIELD remarked two trends mentioned in the session. Reflecting on
+DALY's opening comments on how he could have used a Latin collection of
+text in an electronic form, he said that at first he thought most scholars
+would be unwilling to do that. But as he thought of that in terms of the
+original meaning of research--that is, having already mastered these texts,
+researching them for critical and comparative purposes--for the first time,
+the electronic format made a lot of sense. GREENFIELD could envision
+growing numbers of scholars learning the new technologies for that very
+aspect of their scholarship and for convenience's sake.
+
+Listening to VECCIA and FREEMAN, GREENFIELD thought of an additional
+application of electronic texts. He realized that AM could be used as a
+guide to lead someone to original sources. Students cannot be expected
+to have mastered these sources, things they have never known about
+before. Thus, AM is leading them, in theory, to a vast body of
+information and giving them a superficial overview of it, enabling them
+to select parts of it. GREENFIELD asked if any evidence exists that this
+resource will indeed teach the new user, the K-12 students, how to do
+research. Scholars already know how to do research and are applying
+these new tools. But he wondered why students would go beyond picking
+out things that were most exciting to them.
+
+FREEMAN conceded the correctness of GREENFIELD's observation as applied
+to a school environment. The risk is that a student would sit down at a
+system, play with it, find some things of interest, and then walk away.
+But in the relatively controlled situation of a school library, much will
+depend on the instructions a teacher or a librarian gives a student. She
+viewed the situation not as one of fine-tuning research skills but of
+involving students at a personal level in understanding and researching
+things. Given the guidance one can receive at school, it then becomes
+possible to teach elementary research skills to students, which in fact
+one particular librarian said she was teaching her fifth graders.
+FREEMAN concluded that introducing the idea of following one's own path
+of inquiry, which is essentially what research entails, involves more
+than teaching specific skills. To these comments VECCIA added the
+observation that the individual teacher and the use of a creative
+resource, rather than AM itself, seemed to make the key difference.
+Some schools and some teachers are making excellent use of the nature
+of critical thinking and teaching skills, she said.
+
+Concurring with these remarks, DALY closed the session with the thought that
+the more that producers produced for teachers and for scholars to use with
+their students, the more successful their electronic products would prove.
+
+ ******
+
+SESSION II. SHOW AND TELL
+
+Jacqueline HESS, director, National Demonstration Laboratory, served as
+moderator of the "show-and-tell" session. She noted that a
+question-and-answer period would follow each presentation.
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+MYLONAS * Overview and content of Perseus * Perseus' primary materials
+exist in a system-independent, archival form * A concession * Textual
+aspects of Perseus * Tools to use with the Greek text * Prepared indices
+and full-text searches in Perseus * English-Greek word search leads to
+close study of words and concepts * Navigating Perseus by tracing down
+indices * Using the iconography to perform research *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Elli MYLONAS, managing editor, Perseus Project, Harvard University, first
+gave an overview of Perseus, a large, collaborative effort based at
+Harvard University but with contributors and collaborators located at
+numerous universities and colleges in the United States (e.g., Bowdoin,
+Maryland, Pomona, Chicago, Virginia). Funded primarily by the
+Annenberg/CPB Project, with additional funding from Apple, Harvard, and
+the Packard Humanities Institute, among others, Perseus is a multimedia,
+hypertextual database for teaching and research on classical Greek
+civilization, which was released in February 1992 in version 1.0 and
+distributed by Yale University Press.
+
+Consisting entirely of primary materials, Perseus includes ancient Greek
+texts and translations of those texts; catalog entries--that is, museum
+catalog entries, not library catalog entries--on vases, sites, coins,
+sculpture, and archaeological objects; maps; and a dictionary, among
+other sources. The number of objects and the objects for which catalog
+entries exist are accompanied by thousands of color images, which
+constitute a major feature of the database. Perseus contains
+approximately 30 megabytes of text, an amount that will double in
+subsequent versions. In addition to these primary materials, the Perseus
+Project has been building tools for using them, making access and
+navigation easier, the goal being to build part of the electronic
+environment discussed earlier in the morning in which students or
+scholars can work with their sources.
+
+The demonstration of Perseus will show only a fraction of the real work
+that has gone into it, because the project had to face the dilemma of
+what to enter when putting something into machine-readable form: should
+one aim for very high quality or make concessions in order to get the
+material in? Since Perseus decided to opt for very high quality, all of
+its primary materials exist in a system-independent--insofar as it is
+possible to be system-independent--archival form. Deciding what that
+archival form would be and attaining it required much work and thought.
+For example, all the texts are marked up in SGML, which will be made
+compatible with the guidelines of the Text Encoding Initiative (TEI) when
+they are issued.
+
+Drawings are postscript files, not meeting international standards, but
+at least designed to go across platforms. Images, or rather the real
+archival forms, consist of the best available slides, which are being
+digitized. Much of the catalog material exists in database form--a form
+that the average user could use, manipulate, and display on a personal
+computer, but only at great cost. Thus, this is where the concession
+comes in: All of this rich, well-marked-up information is stripped of
+much of its content; the images are converted into bit-maps and the text
+into small formatted chunks. All this information can then be imported
+into HyperCard and run on a mid-range Macintosh, which is what Perseus
+users have. This fact has made it possible for Perseus to attain wide
+use fairly rapidly. Without those archival forms the HyperCard version
+being demonstrated could not be made easily, and the project could not
+have the potential to move to other forms and machines and software as
+they appear, none of which information is in Perseus on the CD.
+
+Of the numerous multimedia aspects of Perseus, MYLONAS focused on the
+textual. Part of what makes Perseus such a pleasure to use, MYLONAS
+said, is this effort at seamless integration and the ability to move
+around both visual and textual material. Perseus also made the decision
+not to attempt to interpret its material any more than one interprets by
+selecting. But, MYLONAS emphasized, Perseus is not courseware: No
+syllabus exists. There is no effort to define how one teaches a topic
+using Perseus, although the project may eventually collect papers by
+people who have used it to teach. Rather, Perseus aims to provide
+primary material in a kind of electronic library, an electronic sandbox,
+so to say, in which students and scholars who are working on this
+material can explore by themselves. With that, MYLONAS demonstrated
+Perseus, beginning with the Perseus gateway, the first thing one sees
+upon opening Perseus--an effort in part to solve the contextualizing
+problem--which tells the user what the system contains.
+
+MYLONAS demonstrated only a very small portion, beginning with primary
+texts and running off the CD-ROM. Having selected Aeschylus' Prometheus
+Bound, which was viewable in Greek and English pretty much in the same
+segments together, MYLONAS demonstrated tools to use with the Greek text,
+something not possible with a book: looking up the dictionary entry form
+of an unfamiliar word in Greek after subjecting it to Perseus'
+morphological analysis for all the texts. After finding out about a
+word, a user may then decide to see if it is used anywhere else in Greek.
+Because vast amounts of indexing support all of the primary material, one
+can find out where else all forms of a particular Greek word appear--
+often not a trivial matter because Greek is highly inflected. Further,
+since the story of Prometheus has to do with the origins of sacrifice, a
+user may wish to study and explore sacrifice in Greek literature; by
+typing sacrifice into a small window, a user goes to the English-Greek
+word list--something one cannot do without the computer (Perseus has
+indexed the definitions of its dictionary)--the string sacrifice appears
+in the definitions of these sixty-five words. One may then find out
+where any of those words is used in the work(s) of a particular author.
+The English definitions are not lemmatized.
+
+All of the indices driving this kind of usage were originally devised for
+speed, MYLONAS observed; in other words, all that kind of information--
+all forms of all words, where they exist, the dictionary form they belong
+to--were collected into databases, which will expedite searching. Then
+it was discovered that one can do things searching in these databases
+that could not be done searching in the full texts. Thus, although there
+are full-text searches in Perseus, much of the work is done behind the
+scenes, using prepared indices. Re the indexing that is done behind the
+scenes, MYLONAS pointed out that without the SGML forms of the text, it
+could not be done effectively. Much of this indexing is based on the
+structures that are made explicit by the SGML tagging.
+
+It was found that one of the things many of Perseus' non-Greek-reading
+users do is start from the dictionary and then move into the close study
+of words and concepts via this kind of English-Greek word search, by which
+means they might select a concept. This exercise has been assigned to
+students in core courses at Harvard--to study a concept by looking for the
+English word in the dictionary, finding the Greek words, and then finding
+the words in the Greek but, of course, reading across in the English.
+That tells them a great deal about what a translation means as well.
+
+Should one also wish to see images that have to do with sacrifice, that
+person would go to the object key word search, which allows one to
+perform a similar kind of index retrieval on the database of
+archaeological objects. Without words, pictures are useless; Perseus has
+not reached the point where it can do much with images that are not
+cataloged. Thus, although it is possible in Perseus with text and images
+to navigate by knowing where one wants to end up--for example, a
+red-figure vase from the Boston Museum of Fine Arts--one can perform this
+kind of navigation very easily by tracing down indices. MYLONAS
+illustrated several generic scenes of sacrifice on vases. The features
+demonstrated derived from Perseus 1.0; version 2.0 will implement even
+better means of retrieval.
+
+MYLONAS closed by looking at one of the pictures and noting again that
+one can do a great deal of research using the iconography as well as the
+texts. For instance, students in a core course at Harvard this year were
+highly interested in Greek concepts of foreigners and representations of
+non-Greeks. So they performed a great deal of research, both with texts
+(e.g., Herodotus) and with iconography on vases and coins, on how the
+Greeks portrayed non-Greeks. At the same time, art historians who study
+iconography were also interested, and were able to use this material.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Indexing and searchability of all English words in Perseus *
+Several features of Perseus 1.0 * Several levels of customization
+possible * Perseus used for general education * Perseus' effects on
+education * Contextual information in Perseus * Main challenge and
+emphasis of Perseus *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Several points emerged in the discussion that followed MYLONAS's presentation.
+
+Although MYLONAS had not demonstrated Perseus' ability to cross-search
+documents, she confirmed that all English words in Perseus are indexed
+and can be searched. So, for example, sacrifice could have been searched
+in all texts, the historical essay, and all the catalogue entries with
+their descriptions--in short, in all of Perseus.
+
+Boolean logic is not in Perseus 1.0 but will be added to the next
+version, although an effort is being made not to restrict Perseus to a
+database in which one just performs searching, Boolean or otherwise. It
+is possible to move laterally through the documents by selecting a word
+one is interested in and selecting an area of information one is
+interested in and trying to look that word up in that area.
+
+Since Perseus was developed in HyperCard, several levels of customization
+are possible. Simple authoring tools exist that allow one to create
+annotated paths through the information, which are useful for note-taking
+and for guided tours for teaching purposes and for expository writing.
+With a little more ingenuity it is possible to begin to add or substitute
+material in Perseus.
+
+Perseus has not been used so much for classics education as for general
+education, where it seemed to have an impact on the students in the core
+course at Harvard (a general required course that students must take in
+certain areas). Students were able to use primary material much more.
+
+The Perseus Project has an evaluation team at the University of Maryland
+that has been documenting Perseus' effects on education. Perseus is very
+popular, and anecdotal evidence indicates that it is having an effect at
+places other than Harvard, for example, test sites at Ball State
+University, Drury College, and numerous small places where opportunities
+to use vast amounts of primary data may not exist. One documented effect
+is that archaeological, anthropological, and philological research is
+being done by the same person instead of by three different people.
+
+The contextual information in Perseus includes an overview essay, a
+fairly linear historical essay on the fifth century B.C. that provides
+links into the primary material (e.g., Herodotus, Thucydides, and
+Plutarch), via small gray underscoring (on the screen) of linked
+passages. These are handmade links into other material.
+
+To different extents, most of the production work was done at Harvard,
+where the people and the equipment are located. Much of the
+collaborative activity involved data collection and structuring, because
+the main challenge and the emphasis of Perseus is the gathering of
+primary material, that is, building a useful environment for studying
+classical Greece, collecting data, and making it useful.
+Systems-building is definitely not the main concern. Thus, much of the
+work has involved writing essays, collecting information, rewriting it,
+and tagging it. That can be done off site. The creative link for the
+overview essay as well as for both systems and data was collaborative,
+and was forged via E-mail and paper mail with professors at Pomona and
+Bowdoin.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+CALALUCA * PLD's principal focus and contribution to scholarship *
+Various questions preparatory to beginning the project * Basis for
+project * Basic rule in converting PLD * Concerning the images in PLD *
+Running PLD under a variety of retrieval softwares * Encoding the
+database a hard-fought issue * Various features demonstrated * Importance
+of user documentation * Limitations of the CD-ROM version *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Eric CALALUCA, vice president, Chadwyck-Healey, Inc., demonstrated a
+software interpretation of the Patrologia Latina Database (PLD). PLD's
+principal focus from the beginning of the project about three-and-a-half
+years ago was on converting Migne's Latin series, and in the end,
+CALALUCA suggested, conversion of the text will be the major contribution
+to scholarship. CALALUCA stressed that, as possibly the only private
+publishing organization at the Workshop, Chadwyck-Healey had sought no
+federal funds or national foundation support before embarking upon the
+project, but instead had relied upon a great deal of homework and
+marketing to accomplish the task of conversion.
+
+Ever since the possibilities of computer-searching have emerged, scholars
+in the field of late ancient and early medieval studies (philosophers,
+theologians, classicists, and those studying the history of natural law
+and the history of the legal development of Western civilization) have
+been longing for a fully searchable version of Western literature, for
+example, all the texts of Augustine and Bernard of Clairvaux and
+Boethius, not to mention all the secondary and tertiary authors.
+
+Various questions arose, CALALUCA said. Should one convert Migne?
+Should the database be encoded? Is it necessary to do that? How should
+it be delivered? What about CD-ROM? Since this is a transitional
+medium, why even bother to create software to run on a CD-ROM? Since
+everybody knows people will be networking information, why go to the
+trouble--which is far greater with CD-ROM than with the production of
+magnetic data? Finally, how does one make the data available? Can many
+of the hurdles to using electronic information that some publishers have
+imposed upon databases be eliminated?
+
+The PLD project was based on the principle that computer-searching of
+texts is most effective when it is done with a large database. Because
+PLD represented a collection that serves so many disciplines across so
+many periods, it was irresistible.
+
+The basic rule in converting PLD was to do no harm, to avoid the sins of
+intrusion in such a database: no introduction of newer editions, no
+on-the-spot changes, no eradicating of all possible falsehoods from an
+edition. Thus, PLD is not the final act in electronic publishing for
+this discipline, but simply the beginning. The conversion of PLD has
+evoked numerous unanticipated questions: How will information be used?
+What about networking? Can the rights of a database be protected?
+Should one protect the rights of a database? How can it be made
+available?
+
+Those converting PLD also tried to avoid the sins of omission, that is,
+excluding portions of the collections or whole sections. What about the
+images? PLD is full of images, some are extremely pious
+nineteenth-century representations of the Fathers, while others contain
+highly interesting elements. The goal was to cover all the text of Migne
+(including notes, in Greek and in Hebrew, the latter of which, in
+particular, causes problems in creating a search structure), all the
+indices, and even the images, which are being scanned in separately
+searchable files.
+
+Several North American institutions that have placed acquisition requests
+for the PLD database have requested it in magnetic form without software,
+which means they are already running it without software, without
+anything demonstrated at the Workshop.
+
+What cannot practically be done is go back and reconvert and re-encode
+data, a time-consuming and extremely costly enterprise. CALALUCA sees
+PLD as a database that can, and should, be run under a variety of
+retrieval softwares. This will permit the widest possible searches.
+Consequently, the need to produce a CD-ROM of PLD, as well as to develop
+software that could handle some 1.3 gigabyte of heavily encoded text,
+developed out of conversations with collection development and reference
+librarians who wanted software both compassionate enough for the
+pedestrian but also capable of incorporating the most detailed
+lexicographical studies that a user desires to conduct. In the end, the
+encoding and conversion of the data will prove the most enduring
+testament to the value of the project.
+
+The encoding of the database was also a hard-fought issue: Did the
+database need to be encoded? Were there normative structures for encoding
+humanist texts? Should it be SGML? What about the TEI--will it last,
+will it prove useful? CALALUCA expressed some minor doubts as to whether
+a data bank can be fully TEI-conformant. Every effort can be made, but
+in the end to be TEI-conformant means to accept the need to make some
+firm encoding decisions that can, indeed, be disputed. The TEI points
+the publisher in a proper direction but does not presume to make all the
+decisions for him or her. Essentially, the goal of encoding was to
+eliminate, as much as possible, the hindrances to information-networking,
+so that if an institution acquires a database, everybody associated with
+the institution can have access to it.
+
+CALALUCA demonstrated a portion of Volume 160, because it had the most
+anomalies in it. The software was created by Electronic Book
+Technologies of Providence, RI, and is called Dynatext. The software
+works only with SGML-coded data.
+
+Viewing a table of contents on the screen, the audience saw how Dynatext
+treats each element as a book and attempts to simplify movement through a
+volume. Familiarity with the Patrologia in print (i.e., the text, its
+source, and the editions) will make the machine-readable versions highly
+useful. (Software with a Windows application was sought for PLD,
+CALALUCA said, because this was the main trend for scholarly use.)
+
+CALALUCA also demonstrated how a user can perform a variety of searches
+and quickly move to any part of a volume; the look-up screen provides
+some basic, simple word-searching.
+
+CALALUCA argued that one of the major difficulties is not the software.
+Rather, in creating a product that will be used by scholars representing
+a broad spectrum of computer sophistication, user documentation proves
+to be the most important service one can provide.
+
+CALALUCA next illustrated a truncated search under mysterium within ten
+words of virtus and how one would be able to find its contents throughout
+the entire database. He said that the exciting thing about PLD is that
+many of the applications in the retrieval software being written for it
+will exceed the capabilities of the software employed now for the CD-ROM
+version. The CD-ROM faces genuine limitations, in terms of speed and
+comprehensiveness, in the creation of a retrieval software to run it.
+CALALUCA said he hoped that individual scholars will download the data,
+if they wish, to their personal computers, and have ready access to
+important texts on a constant basis, which they will be able to use in
+their research and from which they might even be able to publish.
+
+(CALALUCA explained that the blue numbers represented Migne's column numbers,
+which are the standard scholarly references. Pulling up a note, he stated
+that these texts were heavily edited and the image files would appear simply
+as a note as well, so that one could quickly access an image.)
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+FLEISCHHAUER/ERWAY * Several problems with which AM is still wrestling *
+Various search and retrieval capabilities * Illustration of automatic
+stemming and a truncated search * AM's attempt to find ways to connect
+cataloging to the texts * AM's gravitation towards SGML * Striking a
+balance between quantity and quality * How AM furnishes users recourse to
+images * Conducting a search in a full-text environment * Macintosh and
+IBM prototypes of AM * Multimedia aspects of AM *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+A demonstration of American Memory by its coordinator, Carl FLEISCHHAUER,
+and Ricky ERWAY, associate coordinator, Library of Congress, concluded
+the morning session. Beginning with a collection of broadsides from the
+Continental Congress and the Constitutional Convention, the only text
+collection in a presentable form at the time of the Workshop, FLEISCHHAUER
+highlighted several of the problems with which AM is still wrestling.
+(In its final form, the disk will contain two collections, not only the
+broadsides but also the full text with illustrations of a set of
+approximately 300 African-American pamphlets from the period 1870 to 1910.)
+
+As FREEMAN had explained earlier, AM has attempted to use a small amount
+of interpretation to introduce collections. In the present case, the
+contractor, a company named Quick Source, in Silver Spring, MD., used
+software called Toolbook and put together a modestly interactive
+introduction to the collection. Like the two preceding speakers,
+FLEISCHHAUER argued that the real asset was the underlying collection.
+
+FLEISCHHAUER proceeded to describe various search and retrieval
+capabilities while ERWAY worked the computer. In this particular package
+the "go to" pull-down allowed the user in effect to jump out of Toolbook,
+where the interactive program was located, and enter the third-party
+software used by AM for this text collection, which is called Personal
+Librarian. This was the Windows version of Personal Librarian, a
+software application put together by a company in Rockville, Md.
+
+Since the broadsides came from the Revolutionary War period, a search was
+conducted using the words British or war, with the default operator reset
+as or. FLEISCHHAUER demonstrated both automatic stemming (which finds
+other forms of the same root) and a truncated search. One of Personal
+Librarian's strongest features, the relevance ranking, was represented by
+a chart that indicated how often words being sought appeared in
+documents, with the one receiving the most "hits" obtaining the highest
+score. The "hit list" that is supplied takes the relevance ranking into
+account, making the first hit, in effect, the one the software has
+selected as the most relevant example.
+
+While in the text of one of the broadside documents, FLEISCHHAUER
+remarked AM's attempt to find ways to connect cataloging to the texts,
+which it does in different ways in different manifestations. In the case
+shown, the cataloging was pasted on: AM took MARC records that were
+written as on-line records right into one of the Library's mainframe
+retrieval programs, pulled them out, and handed them off to the contractor,
+who massaged them somewhat to display them in the manner shown. One of
+AM's questions is, Does the cataloguing normally performed in the mainframe
+work in this context, or had AM ought to think through adjustments?
+
+FLEISCHHAUER made the additional point that, as far as the text goes, AM
+has gravitated towards SGML (he pointed to the boldface in the upper part
+of the screen). Although extremely limited in its ability to translate
+or interpret SGML, Personal Librarian will furnish both bold and italics
+on screen; a fairly easy thing to do, but it is one of the ways in which
+SGML is useful.
+
+Striking a balance between quantity and quality has been a major concern
+of AM, with accuracy being one of the places where project staff have
+felt that less than 100-percent accuracy was not unacceptable.
+FLEISCHHAUER cited the example of the standard of the rekeying industry,
+namely 99.95 percent; as one service bureau informed him, to go from
+99.95 to 100 percent would double the cost.
+
+FLEISCHHAUER next demonstrated how AM furnishes users recourse to images,
+and at the same time recalled LESK's pointed question concerning the
+number of people who would look at those images and the number who would
+work only with the text. If the implication of LESK's question was
+sound, FLEISCHHAUER said, it raised the stakes for text accuracy and
+reduced the value of the strategy for images.
+
+Contending that preservation is always a bugaboo, FLEISCHHAUER
+demonstrated several images derived from a scan of a preservation
+microfilm that AM had made. He awarded a grade of C at best, perhaps a
+C minus or a C plus, for how well it worked out. Indeed, the matter of
+learning if other people had better ideas about scanning in general, and,
+in particular, scanning from microfilm, was one of the factors that drove
+AM to attempt to think through the agenda for the Workshop. Skew, for
+example, was one of the issues that AM in its ignorance had not reckoned
+would prove so difficult.
+
+Further, the handling of images of the sort shown, in a desktop computer
+environment, involved a considerable amount of zooming and scrolling.
+Ultimately, AM staff feel that perhaps the paper copy that is printed out
+might be the most useful one, but they remain uncertain as to how much
+on-screen reading users will do.
+
+Returning to the text, FLEISCHHAUER asked viewers to imagine a person who
+might be conducting a search in a full-text environment. With this
+scenario, he proceeded to illustrate other features of Personal Librarian
+that he considered helpful; for example, it provides the ability to
+notice words as one reads. Clicking the "include" button on the bottom
+of the search window pops the words that have been highlighted into the
+search. Thus, a user can refine the search as he or she reads,
+re-executing the search and continuing to find things in the quest for
+materials. This software not only contains relevance ranking, Boolean
+operators, and truncation, it also permits one to perform word algebra,
+so to say, where one puts two or three words in parentheses and links
+them with one Boolean operator and then a couple of words in another set
+of parentheses and asks for things within so many words of others.
+
+Until they became acquainted recently with some of the work being done in
+classics, the AM staff had not realized that a large number of the
+projects that involve electronic texts were being done by people with a
+profound interest in language and linguistics. Their search strategies
+and thinking are oriented to those fields, as is shown in particular by
+the Perseus example. As amateur historians, the AM staff were thinking
+more of searching for concepts and ideas than for particular words.
+Obviously, FLEISCHHAUER conceded, searching for concepts and ideas and
+searching for words may be two rather closely related things.
+
+While displaying several images, FLEISCHHAUER observed that the Macintosh
+prototype built by AM contains a greater diversity of formats. Echoing a
+previous speaker, he said that it was easier to stitch things together in
+the Macintosh, though it tended to be a little more anemic in search and
+retrieval. AM, therefore, increasingly has been investigating
+sophisticated retrieval engines in the IBM format.
+
+FLEISCHHAUER demonstrated several additional examples of the prototype
+interfaces: One was AM's metaphor for the network future, in which a
+kind of reading-room graphic suggests how one would be able to go around
+to different materials. AM contains a large number of photographs in
+analog video form worked up from a videodisc, which enable users to make
+copies to print or incorporate in digital documents. A frame-grabber is
+built into the system, making it possible to bring an image into a window
+and digitize or print it out.
+
+FLEISCHHAUER next demonstrated sound recording, which included texts.
+Recycled from a previous project, the collection included sixty 78-rpm
+phonograph records of political speeches that were made during and
+immediately after World War I. These constituted approximately three
+hours of audio, as AM has digitized it, which occupy 150 megabytes on a
+CD. Thus, they are considerably compressed. From the catalogue card,
+FLEISCHHAUER proceeded to a transcript of a speech with the audio
+available and with highlighted text following it as it played.
+A photograph has been added and a transcription made.
+
+Considerable value has been added beyond what the Library of Congress
+normally would do in cataloguing a sound recording, which raises several
+questions for AM concerning where to draw lines about how much value it can
+afford to add and at what point, perhaps, this becomes more than AM could
+reasonably do or reasonably wish to do. FLEISCHHAUER also demonstrated
+a motion picture. As FREEMAN had reported earlier, the motion picture
+materials have proved the most popular, not surprisingly. This says more
+about the medium, he thought, than about AM's presentation of it.
+
+Because AM's goal was to bring together things that could be used by
+historians or by people who were curious about history,
+turn-of-the-century footage seemed to represent the most appropriate
+collections from the Library of Congress in motion pictures. These were
+the very first films made by Thomas Edison's company and some others at
+that time. The particular example illustrated was a Biograph film,
+brought in with a frame-grabber into a window. A single videodisc
+contains about fifty titles and pieces of film from that period, all of
+New York City. Taken together, AM believes, they provide an interesting
+documentary resource.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Using the frame-grabber in AM * Volume of material processed
+and to be processed * Purpose of AM within LC * Cataloguing and the
+nature of AM's material * SGML coding and the question of quality versus
+quantity *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+During the question-and-answer period that followed FLEISCHHAUER's
+presentation, several clarifications were made.
+
+AM is bringing in motion pictures from a videodisc. The frame-grabber
+devices create a window on a computer screen, which permits users to
+digitize a single frame of the movie or one of the photographs. It
+produces a crude, rough-and-ready image that high school students can
+incorporate into papers, and that has worked very nicely in this way.
+
+Commenting on FLEISCHHAUER's assertion that AM was looking more at
+searching ideas than words, MYLONAS argued that without words an idea
+does not exist. FLEISCHHAUER conceded that he ought to have articulated
+his point more clearly. MYLONAS stated that they were in fact both
+talking about the same thing. By searching for words and by forcing
+people to focus on the word, the Perseus Project felt that they would get
+them to the idea. The way one reviews results is tailored more to one
+kind of user than another.
+
+Concerning the total volume of material that has been processed in this
+way, AM at this point has in retrievable form seven or eight collections,
+all of them photographic. In the Macintosh environment, for example,
+there probably are 35,000-40,000 photographs. The sound recordings
+number sixty items. The broadsides number about 300 items. There are
+500 political cartoons in the form of drawings. The motion pictures, as
+individual items, number sixty to seventy.
+
+AM also has a manuscript collection, the life history portion of one of
+the federal project series, which will contain 2,900 individual
+documents, all first-person narratives. AM has in process about 350
+African-American pamphlets, or about 12,000 printed pages for the period
+1870-1910. Also in the works are some 4,000 panoramic photographs. AM
+has recycled a fair amount of the work done by LC's Prints and
+Photographs Division during the Library's optical disk pilot project in
+the 1980s. For example, a special division of LC has tooled up and
+thought through all the ramifications of electronic presentation of
+photographs. Indeed, they are wheeling them out in great barrel loads.
+The purpose of AM within the Library, it is hoped, is to catalyze several
+of the other special collection divisions which have no particular
+experience with, in some cases, mixed feelings about, an activity such as
+AM. Moreover, in many cases the divisions may be characterized as not
+only lacking experience in "electronifying" things but also in automated
+cataloguing. MARC cataloguing as practiced in the United States is
+heavily weighted toward the description of monograph and serial
+materials, but is much thinner when one enters the world of manuscripts
+and things that are held in the Library's music collection and other
+units. In response to a comment by LESK, that AM's material is very
+heavily photographic, and is so primarily because individual records have
+been made for each photograph, FLEISCHHAUER observed that an item-level
+catalog record exists, for example, for each photograph in the Detroit
+Publishing collection of 25,000 pictures. In the case of the Federal
+Writers Project, for which nearly 3,000 documents exist, representing
+information from twenty-six different states, AM with the assistance of
+Karen STUART of the Manuscript Division will attempt to find some way not
+only to have a collection-level record but perhaps a MARC record for each
+state, which will then serve as an umbrella for the 100-200 documents
+that come under it. But that drama remains to be enacted. The AM staff
+is conservative and clings to cataloguing, though of course visitors tout
+artificial intelligence and neural networks in a manner that suggests that
+perhaps one need not have cataloguing or that much of it could be put aside.
+
+The matter of SGML coding, FLEISCHHAUER conceded, returned the discussion
+to the earlier treated question of quality versus quantity in the Library
+of Congress. Of course, text conversion can be done with 100-percent
+accuracy, but it means that when one's holdings are as vast as LC's only
+a tiny amount will be exposed, whereas permitting lower levels of
+accuracy can lead to exposing or sharing larger amounts, but with the
+quality correspondingly impaired.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+TWOHIG * A contrary experience concerning electronic options * Volume of
+material in the Washington papers and a suggestion of David Packard *
+Implications of Packard's suggestion * Transcribing the documents for the
+CD-ROM * Accuracy of transcriptions * The CD-ROM edition of the Founding
+Fathers documents *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Finding encouragement in a comment of MICHELSON's from the morning
+session--that numerous people in the humanities were choosing electronic
+options to do their work--Dorothy TWOHIG, editor, The Papers of George
+Washington, opened her illustrated talk by noting that her experience
+with literary scholars and numerous people in editing was contrary to
+MICHELSON's. TWOHIG emphasized literary scholars' complete ignorance of
+the technological options available to them or their reluctance or, in
+some cases, their downright hostility toward these options.
+
+After providing an overview of the five Founding Fathers projects
+(Jefferson at Princeton, Franklin at Yale, John Adams at the
+Massachusetts Historical Society, and Madison down the hall from her at
+the University of Virginia), TWOHIG observed that the Washington papers,
+like all of the projects, include both sides of the Washington
+correspondence and deal with some 135,000 documents to be published with
+extensive annotation in eighty to eighty-five volumes, a project that
+will not be completed until well into the next century. Thus, it was
+with considerable enthusiasm several years ago that the Washington Papers
+Project (WPP) greeted David Packard's suggestion that the papers of the
+Founding Fathers could be published easily and inexpensively, and to the
+great benefit of American scholarship, via CD-ROM.
+
+In pragmatic terms, funding from the Packard Foundation would expedite
+the transcription of thousands of documents waiting to be put on disk in
+the WPP offices. Further, since the costs of collecting, editing, and
+converting the Founding Fathers documents into letterpress editions were
+running into the millions of dollars, and the considerable staffs
+involved in all of these projects were devoting their careers to
+producing the work, the Packard Foundation's suggestion had a
+revolutionary aspect: Transcriptions of the entire corpus of the
+Founding Fathers papers would be available on CD-ROM to public and
+college libraries, even high schools, at a fraction of the cost--
+$100-$150 for the annual license fee--to produce a limited university
+press run of 1,000 of each volume of the published papers at $45-$150 per
+printed volume. Given the current budget crunch in educational systems
+and the corresponding constraints on librarians in smaller institutions
+who wish to add these volumes to their collections, producing the
+documents on CD-ROM would likely open a greatly expanded audience for the
+papers. TWOHIG stressed, however, that development of the Founding
+Fathers CD-ROM is still in its infancy. Serious software problems remain
+to be resolved before the material can be put into readable form.
+
+Funding from the Packard Foundation resulted in a major push to
+transcribe the 75,000 or so documents of the Washington papers remaining
+to be transcribed onto computer disks. Slides illustrated several of the
+problems encountered, for example, the present inability of CD-ROM to
+indicate the cross-outs (deleted material) in eighteenth century
+documents. TWOHIG next described documents from various periods in the
+eighteenth century that have been transcribed in chronological order and
+delivered to the Packard offices in California, where they are converted
+to the CD-ROM, a process that is expected to consume five years to
+complete (that is, reckoning from David Packard's suggestion made several
+years ago, until about July 1994). TWOHIG found an encouraging
+indication of the project's benefits in the ongoing use made by scholars
+of the search functions of the CD-ROM, particularly in reducing the time
+spent in manually turning the pages of the Washington papers.
+
+TWOHIG next furnished details concerning the accuracy of transcriptions.
+For instance, the insertion of thousands of documents on the CD-ROM
+currently does not permit each document to be verified against the
+original manuscript several times as in the case of documents that appear
+in the published edition. However, the transcriptions receive a cursory
+check for obvious typos, the misspellings of proper names, and other
+errors from the WPP CD-ROM editor. Eventually, all documents that appear
+in the electronic version will be checked by project editors. Although
+this process has met with opposition from some of the editors on the
+grounds that imperfect work may leave their offices, the advantages in
+making this material available as a research tool outweigh fears about the
+misspelling of proper names and other relatively minor editorial matters.
+
+Completion of all five Founding Fathers projects (i.e., retrievability
+and searchability of all of the documents by proper names, alternate
+spellings, or varieties of subjects) will provide one of the richest
+sources of this size for the history of the United States in the latter
+part of the eighteenth century. Further, publication on CD-ROM will
+allow editors to include even minutiae, such as laundry lists, not
+included in the printed volumes.
+
+It seems possible that the extensive annotation provided in the printed
+volumes eventually will be added to the CD-ROM edition, pending
+negotiations with the publishers of the papers. At the moment, the
+Founding Fathers CD-ROM is accessible only on the IBYCUS, a computer
+developed out of the Thesaurus Linguae Graecae project and designed for
+the use of classical scholars. There are perhaps 400 IBYCUS computers in
+the country, most of which are in university classics departments.
+Ultimately, it is anticipated that the CD-ROM edition of the Founding
+Fathers documents will run on any IBM-compatible or Macintosh computer
+with a CD-ROM drive. Numerous changes in the software will also occur
+before the project is completed. (Editor's note: an IBYCUS was
+unavailable to demonstrate the CD-ROM.)
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Several additional features of WPP clarified *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Discussion following TWOHIG's presentation served to clarify several
+additional features, including (1) that the project's primary
+intellectual product consists in the electronic transcription of the
+material; (2) that the text transmitted to the CD-ROM people is not
+marked up; (3) that cataloging and subject-indexing of the material
+remain to be worked out (though at this point material can be retrieved
+by name); and (4) that because all the searching is done in the hardware,
+the IBYCUS is designed to read a CD-ROM which contains only sequential
+text files. Technically, it then becomes very easy to read the material
+off and put it on another device.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+LEBRON * Overview of the history of the joint project between AAAS and
+OCLC * Several practices the on-line environment shares with traditional
+publishing on hard copy * Several technical and behavioral barriers to
+electronic publishing * How AAAS and OCLC arrived at the subject of
+clinical trials * Advantages of the electronic format and other features
+of OJCCT * An illustrated tour of the journal *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Maria LEBRON, managing editor, The Online Journal of Current Clinical
+Trials (OJCCT), presented an illustrated overview of the history of the
+joint project between the American Association for the Advancement of
+Science (AAAS) and the Online Computer Library Center, Inc. (OCLC). The
+joint venture between AAAS and OCLC owes its beginning to a
+reorganization launched by the new chief executive officer at OCLC about
+three years ago and combines the strengths of these two disparate
+organizations. In short, OJCCT represents the process of scholarly
+publishing on line.
+
+LEBRON next discussed several practices the on-line environment shares
+with traditional publishing on hard copy--for example, peer review of
+manuscripts--that are highly important in the academic world. LEBRON
+noted in particular the implications of citation counts for tenure
+committees and grants committees. In the traditional hard-copy
+environment, citation counts are readily demonstrable, whereas the
+on-line environment represents an ethereal medium to most academics.
+
+LEBRON remarked several technical and behavioral barriers to electronic
+publishing, for instance, the problems in transmission created by special
+characters or by complex graphics and halftones. In addition, she noted
+economic limitations such as the storage costs of maintaining back issues
+and market or audience education.
+
+Manuscripts cannot be uploaded to OJCCT, LEBRON explained, because it is
+not a bulletin board or E-mail, forms of electronic transmission of
+information that have created an ambience clouding people's understanding
+of what the journal is attempting to do. OJCCT, which publishes
+peer-reviewed medical articles dealing with the subject of clinical
+trials, includes text, tabular material, and graphics, although at this
+time it can transmit only line illustrations.
+
+Next, LEBRON described how AAAS and OCLC arrived at the subject of
+clinical trials: It is 1) a highly statistical discipline that 2) does
+not require halftones but can satisfy the needs of its audience with line
+illustrations and graphic material, and 3) there is a need for the speedy
+dissemination of high-quality research results. Clinical trials are
+research activities that involve the administration of a test treatment
+to some experimental unit in order to test its usefulness before it is
+made available to the general population. LEBRON proceeded to give
+additional information on OJCCT concerning its editor-in-chief, editorial
+board, editorial content, and the types of articles it publishes
+(including peer-reviewed research reports and reviews), as well as
+features shared by other traditional hard-copy journals.
+
+Among the advantages of the electronic format are faster dissemination of
+information, including raw data, and the absence of space constraints
+because pages do not exist. (This latter fact creates an interesting
+situation when it comes to citations.) Nor are there any issues. AAAS's
+capacity to download materials directly from the journal to a
+subscriber's printer, hard drive, or floppy disk helps ensure highly
+accurate transcription. Other features of OJCCT include on-screen alerts
+that allow linkage of subsequently published documents to the original
+documents; on-line searching by subject, author, title, etc.; indexing of
+every single word that appears in an article; viewing access to an
+article by component (abstract, full text, or graphs); numbered
+paragraphs to replace page counts; publication in Science every thirty
+days of indexing of all articles published in the journal;
+typeset-quality screens; and Hypertext links that enable subscribers to
+bring up Medline abstracts directly without leaving the journal.
+
+After detailing the two primary ways to gain access to the journal,
+through the OCLC network and Compuserv if one desires graphics or through
+the Internet if just an ASCII file is desired, LEBRON illustrated the
+speedy editorial process and the coding of the document using SGML tags
+after it has been accepted for publication. She also gave an illustrated
+tour of the journal, its search-and-retrieval capabilities in particular,
+but also including problems associated with scanning in illustrations,
+and the importance of on-screen alerts to the medical profession re
+retractions or corrections, or more frequently, editorials, letters to
+the editors, or follow-up reports. She closed by inviting the audience
+to join AAAS on 1 July, when OJCCT was scheduled to go on-line.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Additional features of OJCCT *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+In the lengthy discussion that followed LEBRON's presentation, these
+points emerged:
+
+ * The SGML text can be tailored as users wish.
+
+ * All these articles have a fairly simple document definition.
+
+ * Document-type definitions (DTDs) were developed and given to OJCCT
+ for coding.
+
+ * No articles will be removed from the journal. (Because there are
+ no back issues, there are no lost issues either. Once a subscriber
+ logs onto the journal he or she has access not only to the currently
+ published materials, but retrospectively to everything that has been
+ published in it. Thus the table of contents grows bigger. The date
+ of publication serves to distinguish between currently published
+ materials and older materials.)
+
+ * The pricing system for the journal resembles that for most medical
+ journals: for 1992, $95 for a year, plus telecommunications charges
+ (there are no connect time charges); for 1993, $110 for the
+ entire year for single users, though the journal can be put on a
+ local area network (LAN). However, only one person can access the
+ journal at a time. Site licenses may come in the future.
+
+ * AAAS is working closely with colleagues at OCLC to display
+ mathematical equations on screen.
+
+ * Without compromising any steps in the editorial process, the
+ technology has reduced the time lag between when a manuscript is
+ originally submitted and the time it is accepted; the review process
+ does not differ greatly from the standard six-to-eight weeks
+ employed by many of the hard-copy journals. The process still
+ depends on people.
+
+ * As far as a preservation copy is concerned, articles will be
+ maintained on the computer permanently and subscribers, as part of
+ their subscription, will receive a microfiche-quality archival copy
+ of everything published during that year; in addition, reprints can
+ be purchased in much the same way as in a hard-copy environment.
+ Hard copies are prepared but are not the primary medium for the
+ dissemination of the information.
+
+ * Because OJCCT is not yet on line, it is difficult to know how many
+ people would simply browse through the journal on the screen as
+ opposed to downloading the whole thing and printing it out; a mix of
+ both types of users likely will result.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+PERSONIUS * Developments in technology over the past decade * The CLASS
+Project * Advantages for technology and for the CLASS Project *
+Developing a network application an underlying assumption of the project
+* Details of the scanning process * Print-on-demand copies of books *
+Future plans include development of a browsing tool *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Lynne PERSONIUS, assistant director, Cornell Information Technologies for
+Scholarly Information Services, Cornell University, first commented on
+the tremendous impact that developments in technology over the past ten
+years--networking, in particular--have had on the way information is
+handled, and how, in her own case, these developments have counterbalanced
+Cornell's relative geographical isolation. Other significant technologies
+include scanners, which are much more sophisticated than they were ten years
+ago; mass storage and the dramatic savings that result from it in terms of
+both space and money relative to twenty or thirty years ago; new and
+improved printing technologies, which have greatly affected the distribution
+of information; and, of course, digital technologies, whose applicability to
+library preservation remains at issue.
+
+Given that context, PERSONIUS described the College Library Access and
+Storage System (CLASS) Project, a library preservation project,
+primarily, and what has been accomplished. Directly funded by the
+Commission on Preservation and Access and by the Xerox Corporation, which
+has provided a significant amount of hardware, the CLASS Project has been
+working with a development team at Xerox to develop a software
+application tailored to library preservation requirements. Within
+Cornell, participants in the project have been working jointly with both
+library and information technologies. The focus of the project has been
+on reformatting and saving books that are in brittle condition.
+PERSONIUS showed Workshop participants a brittle book, and described how
+such books were the result of developments in papermaking around the
+beginning of the Industrial Revolution. The papermaking process was
+changed so that a significant amount of acid was introduced into the
+actual paper itself, which deteriorates as it sits on library shelves.
+
+One of the advantages for technology and for the CLASS Project is that
+the information in brittle books is mostly out of copyright and thus
+offers an opportunity to work with material that requires library
+preservation, and to create and work on an infrastructure to save the
+material. Acknowledging the familiarity of those working in preservation
+with this information, PERSONIUS noted that several things are being
+done: the primary preservation technology used today is photocopying of
+brittle material. Saving the intellectual content of the material is the
+main goal. With microfilm copy, the intellectual content is preserved on
+the assumption that in the future the image can be reformatted in any
+other way that then exists.
+
+An underlying assumption of the CLASS Project from the beginning was
+that it would develop a network application. Project staff scan books
+at a workstation located in the library, near the brittle material.
+An image-server filing system is located at a distance from that
+workstation, and a printer is located in another building. All of the
+materials digitized and stored on the image-filing system are cataloged
+in the on-line catalogue. In fact, a record for each of these electronic
+books is stored in the RLIN database so that a record exists of what is
+in the digital library throughout standard catalogue procedures. In the
+future, researchers working from their own workstations in their offices,
+or their networks, will have access--wherever they might be--through a
+request server being built into the new digital library. A second
+assumption is that the preferred means of finding the material will be by
+looking through a catalogue. PERSONIUS described the scanning process,
+which uses a prototype scanner being developed by Xerox and which scans a
+very high resolution image at great speed. Another significant feature,
+because this is a preservation application, is the placing of the pages
+that fall apart one for one on the platen. Ordinarily, a scanner could
+be used with some sort of a document feeder, but because of this
+application that is not feasible. Further, because CLASS is a
+preservation application, after the paper replacement is made there, a
+very careful quality control check is performed. An original book is
+compared to the printed copy and verification is made, before proceeding,
+that all of the image, all of the information, has been captured. Then,
+a new library book is produced: The printed images are rebound by a
+commercial binder and a new book is returned to the shelf.
+Significantly, the books returned to the library shelves are beautiful
+and useful replacements on acid-free paper that should last a long time,
+in effect, the equivalent of preservation photocopies. Thus, the project
+has a library of digital books. In essence, CLASS is scanning and
+storing books as 600 dot-per-inch bit-mapped images, compressed using
+Group 4 CCITT (i.e., the French acronym for International Consultative
+Committee for Telegraph and Telephone) compression. They are stored as
+TIFF files on an optical filing system that is composed of a database
+used for searching and locating the books and an optical jukebox that
+stores 64 twelve-inch platters. A very-high-resolution printed copy of
+these books at 600 dots per inch is created, using a Xerox DocuTech
+printer to make the paper replacements on acid-free paper.
+
+PERSONIUS maintained that the CLASS Project presents an opportunity to
+introduce people to books as digital images by using a paper medium.
+Books are returned to the shelves while people are also given the ability
+to print on demand--to make their own copies of books. (PERSONIUS
+distributed copies of an engineering journal published by engineering
+students at Cornell around 1900 as an example of what a print-on-demand
+copy of material might be like. This very cheap copy would be available
+to people to use for their own research purposes and would bridge the gap
+between an electronic work and the paper that readers like to have.)
+PERSONIUS then attempted to illustrate a very early prototype of
+networked access to this digital library. Xerox Corporation has
+developed a prototype of a view station that can send images across the
+network to be viewed.
+
+The particular library brought down for demonstration contained two
+mathematics books. CLASS is developing and will spend the next year
+developing an application that allows people at workstations to browse
+the books. Thus, CLASS is developing a browsing tool, on the assumption
+that users do not want to read an entire book from a workstation, but
+would prefer to be able to look through and decide if they would like to
+have a printed copy of it.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Re retrieval software * "Digital file copyright" * Scanning
+rate during production * Autosegmentation * Criteria employed in
+selecting books for scanning * Compression and decompression of images *
+OCR not precluded *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+During the question-and-answer period that followed her presentation,
+PERSONIUS made these additional points:
+
+ * Re retrieval software, Cornell is developing a Unix-based server
+ as well as clients for the server that support multiple platforms
+ (Macintosh, IBM and Sun workstations), in the hope that people from
+ any of those platforms will retrieve books; a further operating
+ assumption is that standard interfaces will be used as much as
+ possible, where standards can be put in place, because CLASS
+ considers this retrieval software a library application and would
+ like to be able to look at material not only at Cornell but at other
+ institutions.
+
+ * The phrase "digital file copyright by Cornell University" was
+ added at the advice of Cornell's legal staff with the caveat that it
+ probably would not hold up in court. Cornell does not want people
+ to copy its books and sell them but would like to keep them
+ available for use in a library environment for library purposes.
+
+ * In production the scanner can scan about 300 pages per hour,
+ capturing 600 dots per inch.
+
+ * The Xerox software has filters to scan halftone material and avoid
+ the moire patterns that occur when halftone material is scanned.
+ Xerox has been working on hardware and software that would enable
+ the scanner itself to recognize this situation and deal with it
+ appropriately--a kind of autosegmentation that would enable the
+ scanner to handle halftone material as well as text on a single page.
+
+ * The books subjected to the elaborate process described above were
+ selected because CLASS is a preservation project, with the first 500
+ books selected coming from Cornell's mathematics collection, because
+ they were still being heavily used and because, although they were
+ in need of preservation, the mathematics library and the mathematics
+ faculty were uncomfortable having them microfilmed. (They wanted a
+ printed copy.) Thus, these books became a logical choice for this
+ project. Other books were chosen by the project's selection committees
+ for experiments with the technology, as well as to meet a demand or need.
+
+ * Images will be decompressed before they are sent over the line; at
+ this time they are compressed and sent to the image filing system
+ and then sent to the printer as compressed images; they are returned
+ to the workstation as compressed 600-dpi images and the workstation
+ decompresses and scales them for display--an inefficient way to
+ access the material though it works quite well for printing and
+ other purposes.
+
+ * CLASS is also decompressing on Macintosh and IBM, a slow process
+ right now. Eventually, compression and decompression will take
+ place on an image conversion server. Trade-offs will be made, based
+ on future performance testing, concerning where the file is
+ compressed and what resolution image is sent.
+
+ * OCR has not been precluded; images are being stored that have been
+ scanned at a high resolution, which presumably would suit them well
+ to an OCR process. Because the material being scanned is about 100
+ years old and was printed with less-than-ideal technologies, very
+ early and preliminary tests have not produced good results. But the
+ project is capturing an image that is of sufficient resolution to be
+ subjected to OCR in the future. Moreover, the system architecture
+ and the system plan have a logical place to store an OCR image if it
+ has been captured. But that is not being done now.
+
+ ******
+
+SESSION III. DISTRIBUTION, NETWORKS, AND NETWORKING: OPTIONS FOR
+DISSEMINATION
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ZICH * Issues pertaining to CD-ROMs * Options for publishing in CD-ROM *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Robert ZICH, special assistant to the associate librarian for special
+projects, Library of Congress, and moderator of this session, first noted
+the blessed but somewhat awkward circumstance of having four very
+distinguished people representing networks and networking or at least
+leaning in that direction, while lacking anyone to speak from the
+strongest possible background in CD-ROMs. ZICH expressed the hope that
+members of the audience would join the discussion. He stressed the
+subtitle of this particular session, "Options for Dissemination," and,
+concerning CD-ROMs, the importance of determining when it would be wise
+to consider dissemination in CD-ROM versus networks. A shopping list of
+issues pertaining to CD-ROMs included: the grounds for selecting
+commercial publishers, and in-house publication where possible versus
+nonprofit or government publication. A similar list for networks
+included: determining when one should consider dissemination through a
+network, identifying the mechanisms or entities that exist to place items
+on networks, identifying the pool of existing networks, determining how a
+producer would choose between networks, and identifying the elements of
+a business arrangement in a network.
+
+Options for publishing in CD-ROM: an outside publisher versus
+self-publication. If an outside publisher is used, it can be nonprofit,
+such as the Government Printing Office (GPO) or the National Technical
+Information Service (NTIS), in the case of government. The pros and cons
+associated with employing an outside publisher are obvious. Among the
+pros, there is no trouble getting accepted. One pays the bill and, in
+effect, goes one's way. Among the cons, when one pays an outside
+publisher to perform the work, that publisher will perform the work it is
+obliged to do, but perhaps without the production expertise and skill in
+marketing and dissemination that some would seek. There is the body of
+commercial publishers that do possess that kind of expertise in
+distribution and marketing but that obviously are selective. In
+self-publication, one exercises full control, but then one must handle
+matters such as distribution and marketing. Such are some of the options
+for publishing in the case of CD-ROM.
+
+In the case of technical and design issues, which are also important,
+there are many matters which many at the Workshop already knew a good
+deal about: retrieval system requirements and costs, what to do about
+images, the various capabilities and platforms, the trade-offs between
+cost and performance, concerns about local-area networkability,
+interoperability, etc.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+LYNCH * Creating networked information is different from using networks
+as an access or dissemination vehicle * Networked multimedia on a large
+scale does not yet work * Typical CD-ROM publication model a two-edged
+sword * Publishing information on a CD-ROM in the present world of
+immature standards * Contrast between CD-ROM and network pricing *
+Examples demonstrated earlier in the day as a set of insular information
+gems * Paramount need to link databases * Layering to become increasingly
+necessary * Project NEEDS and the issues of information reuse and active
+versus passive use * X-Windows as a way of differentiating between
+network access and networked information * Barriers to the distribution
+of networked multimedia information * Need for good, real-time delivery
+protocols * The question of presentation integrity in client-server
+computing in the academic world * Recommendations for producing multimedia
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Clifford LYNCH, director, Library Automation, University of California,
+opened his talk with the general observation that networked information
+constituted a difficult and elusive topic because it is something just
+starting to develop and not yet fully understood. LYNCH contended that
+creating genuinely networked information was different from using
+networks as an access or dissemination vehicle and was more sophisticated
+and more subtle. He invited the members of the audience to extrapolate,
+from what they heard about the preceding demonstration projects, to what
+sort of a world of electronics information--scholarly, archival,
+cultural, etc.--they wished to end up with ten or fifteen years from now.
+LYNCH suggested that to extrapolate directly from these projects would
+produce unpleasant results.
+
+Putting the issue of CD-ROM in perspective before getting into
+generalities on networked information, LYNCH observed that those engaged
+in multimedia today who wish to ship a product, so to say, probably do
+not have much choice except to use CD-ROM: networked multimedia on a
+large scale basically does not yet work because the technology does not
+exist. For example, anybody who has tried moving images around over the
+Internet knows that this is an exciting touch-and-go process, a
+fascinating and fertile area for experimentation, research, and
+development, but not something that one can become deeply enthusiastic
+about committing to production systems at this time.
+
+This situation will change, LYNCH said. He differentiated CD-ROM from
+the practices that have been followed up to now in distributing data on
+CD-ROM. For LYNCH the problem with CD-ROM is not its portability or its
+slowness but the two-edged sword of having the retrieval application and
+the user interface inextricably bound up with the data, which is the
+typical CD-ROM publication model. It is not a case of publishing data
+but of distributing a typically stand-alone, typically closed system,
+all--software, user interface, and data--on a little disk. Hence, all
+the between-disk navigational issues as well as the impossibility in most
+cases of integrating data on one disk with that on another. Most CD-ROM
+retrieval software does not network very gracefully at present. However,
+in the present world of immature standards and lack of understanding of
+what network information is or what the ground rules are for creating or
+using it, publishing information on a CD-ROM does add value in a very
+real sense.
+
+LYNCH drew a contrast between CD-ROM and network pricing and in doing so
+highlighted something bizarre in information pricing. A large
+institution such as the University of California has vendors who will
+offer to sell information on CD-ROM for a price per year in four digits,
+but for the same data (e.g., an abstracting and indexing database) on
+magnetic tape, regardless of how many people may use it concurrently,
+will quote a price in six digits.
+
+What is packaged with the CD-ROM in one sense adds value--a complete
+access system, not just raw, unrefined information--although it is not
+generally perceived that way. This is because the access software,
+although it adds value, is viewed by some people, particularly in the
+university environment where there is a very heavy commitment to
+networking, as being developed in the wrong direction.
+
+Given that context, LYNCH described the examples demonstrated as a set of
+insular information gems--Perseus, for example, offers nicely linked
+information, but would be very difficult to integrate with other
+databases, that is, to link together seamlessly with other source files
+from other sources. It resembles an island, and in this respect is
+similar to numerous stand-alone projects that are based on videodiscs,
+that is, on the single-workstation concept.
+
+As scholarship evolves in a network environment, the paramount need will
+be to link databases. We must link personal databases to public
+databases, to group databases, in fairly seamless ways--which is
+extremely difficult in the environments under discussion with copies of
+databases proliferating all over the place.
+
+The notion of layering also struck LYNCH as lurking in several of the
+projects demonstrated. Several databases in a sense constitute
+information archives without a significant amount of navigation built in.
+Educators, critics, and others will want a layered structure--one that
+defines or links paths through the layers to allow users to reach
+specific points. In LYNCH's view, layering will become increasingly
+necessary, and not just within a single resource but across resources
+(e.g., tracing mythology and cultural themes across several classics
+databases as well as a database of Renaissance culture). This ability to
+organize resources, to build things out of multiple other things on the
+network or select pieces of it, represented for LYNCH one of the key
+aspects of network information.
+
+Contending that information reuse constituted another significant issue,
+LYNCH commended to the audience's attention Project NEEDS (i.e., National
+Engineering Education Delivery System). This project's objective is to
+produce a database of engineering courseware as well as the components
+that can be used to develop new courseware. In a number of the existing
+applications, LYNCH said, the issue of reuse (how much one can take apart
+and reuse in other applications) was not being well considered. He also
+raised the issue of active versus passive use, one aspect of which is
+how much information will be manipulated locally by users. Most people,
+he argued, may do a little browsing and then will wish to print. LYNCH
+was uncertain how these resources would be used by the vast majority of
+users in the network environment.
+
+LYNCH next said a few words about X-Windows as a way of differentiating
+between network access and networked information. A number of the
+applications demonstrated at the Workshop could be rewritten to use X
+across the network, so that one could run them from any X-capable device-
+-a workstation, an X terminal--and transact with a database across the
+network. Although this opens up access a little, assuming one has enough
+network to handle it, it does not provide an interface to develop a
+program that conveniently integrates information from multiple databases.
+X is a viewing technology that has limits. In a real sense, it is just a
+graphical version of remote log-in across the network. X-type applications
+represent only one step in the progression towards real access.
+
+LYNCH next discussed barriers to the distribution of networked multimedia
+information. The heart of the problem is a lack of standards to provide
+the ability for computers to talk to each other, retrieve information,
+and shuffle it around fairly casually. At the moment, little progress is
+being made on standards for networked information; for example, present
+standards do not cover images, digital voice, and digital video. A
+useful tool kit of exchange formats for basic texts is only now being
+assembled. The synchronization of content streams (i.e., synchronizing a
+voice track to a video track, establishing temporal relations between
+different components in a multimedia object) constitutes another issue
+for networked multimedia that is just beginning to receive attention.
+
+Underlying network protocols also need some work; good, real-time
+delivery protocols on the Internet do not yet exist. In LYNCH's view,
+highly important in this context is the notion of networked digital
+object IDs, the ability of one object on the network to point to another
+object (or component thereof) on the network. Serious bandwidth issues
+also exist. LYNCH was uncertain if billion-bit-per-second networks would
+prove sufficient if numerous people ran video in parallel.
+
+LYNCH concluded by offering an issue for database creators to consider,
+as well as several comments about what might constitute good trial
+multimedia experiments. In a networked information world the database
+builder or service builder (publisher) does not exercise the same
+extensive control over the integrity of the presentation; strange
+programs "munge" with one's data before the user sees it. Serious
+thought must be given to what guarantees integrity of presentation. Part
+of that is related to where one draws the boundaries around a networked
+information service. This question of presentation integrity in
+client-server computing has not been stressed enough in the academic
+world, LYNCH argued, though commercial service providers deal with it
+regularly.
+
+Concerning multimedia, LYNCH observed that good multimedia at the moment
+is hideously expensive to produce. He recommended producing multimedia
+with either very high sale value, or multimedia with a very long life
+span, or multimedia that will have a very broad usage base and whose
+costs therefore can be amortized among large numbers of users. In this
+connection, historical and humanistically oriented material may be a good
+place to start, because it tends to have a longer life span than much of
+the scientific material, as well as a wider user base. LYNCH noted, for
+example, that American Memory fits many of the criteria outlined. He
+remarked the extensive discussion about bringing the Internet or the
+National Research and Education Network (NREN) into the K-12 environment
+as a way of helping the American educational system.
+
+LYNCH closed by noting that the kinds of applications demonstrated struck
+him as excellent justifications of broad-scale networking for K-12, but
+that at this time no "killer" application exists to mobilize the K-12
+community to obtain connectivity.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Dearth of genuinely interesting applications on the network
+a slow-changing situation * The issue of the integrity of presentation in
+a networked environment * Several reasons why CD-ROM software does not
+network *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+During the discussion period that followed LYNCH's presentation, several
+additional points were made.
+
+LYNCH reiterated even more strongly his contention that, historically,
+once one goes outside high-end science and the group of those who need
+access to supercomputers, there is a great dearth of genuinely
+interesting applications on the network. He saw this situation changing
+slowly, with some of the scientific databases and scholarly discussion
+groups and electronic journals coming on as well as with the availability
+of Wide Area Information Servers (WAIS) and some of the databases that
+are being mounted there. However, many of those things do not seem to
+have piqued great popular interest. For instance, most high school
+students of LYNCH's acquaintance would not qualify as devotees of serious
+molecular biology.
+
+Concerning the issue of the integrity of presentation, LYNCH believed
+that a couple of information providers have laid down the law at least on
+certain things. For example, his recollection was that the National
+Library of Medicine feels strongly that one needs to employ the
+identifier field if he or she is to mount a database commercially. The
+problem with a real networked environment is that one does not know who
+is reformatting and reprocessing one's data when one enters a client
+server mode. It becomes anybody's guess, for example, if the network
+uses a Z39.50 server, or what clients are doing with one's data. A data
+provider can say that his contract will only permit clients to have
+access to his data after he vets them and their presentation and makes
+certain it suits him. But LYNCH held out little expectation that the
+network marketplace would evolve in that way, because it required too
+much prior negotiation.
+
+CD-ROM software does not network for a variety of reasons, LYNCH said.
+He speculated that CD-ROM publishers are not eager to have their products
+really hook into wide area networks, because they fear it will make their
+data suppliers nervous. Moreover, until relatively recently, one had to
+be rather adroit to run a full TCP/IP stack plus applications on a
+PC-size machine, whereas nowadays it is becoming easier as PCs grow
+bigger and faster. LYNCH also speculated that software providers had not
+heard from their customers until the last year or so, or had not heard
+from enough of their customers.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+BESSER * Implications of disseminating images on the network; planning
+the distribution of multimedia documents poses two critical
+implementation problems * Layered approach represents the way to deal
+with users' capabilities * Problems in platform design; file size and its
+implications for networking * Transmission of megabyte size images
+impractical * Compression and decompression at the user's end * Promising
+trends for compression * A disadvantage of using X-Windows * A project at
+the Smithsonian that mounts images on several networks *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Howard BESSER, School of Library and Information Science, University of
+Pittsburgh, spoke primarily about multimedia, focusing on images and the
+broad implications of disseminating them on the network. He argued that
+planning the distribution of multimedia documents posed two critical
+implementation problems, which he framed in the form of two questions:
+1) What platform will one use and what hardware and software will users
+have for viewing of the material? and 2) How can one deliver a
+sufficiently robust set of information in an accessible format in a
+reasonable amount of time? Depending on whether network or CD-ROM is the
+medium used, this question raises different issues of storage,
+compression, and transmission.
+
+Concerning the design of platforms (e.g., sound, gray scale, simple
+color, etc.) and the various capabilities users may have, BESSER
+maintained that a layered approach was the way to deal with users'
+capabilities. A result would be that users with less powerful
+workstations would simply have less functionality. He urged members of
+the audience to advocate standards and accompanying software that handle
+layered functionality across a wide variety of platforms.
+
+BESSER also addressed problems in platform design, namely, deciding how
+large a machine to design for situations when the largest number of users
+have the lowest level of the machine, and one desires higher
+functionality. BESSER then proceeded to the question of file size and
+its implications for networking. He discussed still images in the main.
+For example, a digital color image that fills the screen of a standard
+mega-pel workstation (Sun or Next) will require one megabyte of storage
+for an eight-bit image or three megabytes of storage for a true color or
+twenty-four-bit image. Lossless compression algorithms (that is,
+computational procedures in which no data is lost in the process of
+compressing [and decompressing] an image--the exact bit-representation is
+maintained) might bring storage down to a third of a megabyte per image,
+but not much further than that. The question of size makes it difficult
+to fit an appropriately sized set of these images on a single disk or to
+transmit them quickly enough on a network.
+
+With these full screen mega-pel images that constitute a third of a
+megabyte, one gets 1,000-3,000 full-screen images on a one-gigabyte disk;
+a standard CD-ROM represents approximately 60 percent of that. Storing
+images the size of a PC screen (just 8 bit color) increases storage
+capacity to 4,000-12,000 images per gigabyte; 60 percent of that gives
+one the size of a CD-ROM, which in turn creates a major problem. One
+cannot have full-screen, full-color images with lossless compression; one
+must compress them or use a lower resolution. For megabyte-size images,
+anything slower than a T-1 speed is impractical. For example, on a
+fifty-six-kilobaud line, it takes three minutes to transfer a
+one-megabyte file, if it is not compressed; and this speed assumes ideal
+circumstances (no other user contending for network bandwidth). Thus,
+questions of disk access, remote display, and current telephone
+connection speed make transmission of megabyte-size images impractical.
+
+BESSER then discussed ways to deal with these large images, for example,
+compression and decompression at the user's end. In this connection, the
+issues of how much one is willing to lose in the compression process and
+what image quality one needs in the first place are unknown. But what is
+known is that compression entails some loss of data. BESSER urged that
+more studies be conducted on image quality in different situations, for
+example, what kind of images are needed for what kind of disciplines, and
+what kind of image quality is needed for a browsing tool, an intermediate
+viewing tool, and archiving.
+
+BESSER remarked two promising trends for compression: from a technical
+perspective, algorithms that use what is called subjective redundancy
+employ principles from visual psycho-physics to identify and remove
+information from the image that the human eye cannot perceive; from an
+interchange and interoperability perspective, the JPEG (i.e., Joint
+Photographic Experts Group, an ISO standard) compression algorithms also
+offer promise. These issues of compression and decompression, BESSER
+argued, resembled those raised earlier concerning the design of different
+platforms. Gauging the capabilities of potential users constitutes a
+primary goal. BESSER advocated layering or separating the images from
+the applications that retrieve and display them, to avoid tying them to
+particular software.
+
+BESSER detailed several lessons learned from his work at Berkeley with
+Imagequery, especially the advantages and disadvantages of using
+X-Windows. In the latter category, for example, retrieval is tied
+directly to one's data, an intolerable situation in the long run on a
+networked system. Finally, BESSER described a project of Jim Wallace at
+the Smithsonian Institution, who is mounting images in a extremely
+rudimentary way on the Compuserv and Genie networks and is preparing to
+mount them on America On Line. Although the average user takes over
+thirty minutes to download these images (assuming a fairly fast modem),
+nevertheless, images have been downloaded 25,000 times.
+
+BESSER concluded his talk with several comments on the business
+arrangement between the Smithsonian and Compuserv. He contended that not
+enough is known concerning the value of images.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Creating digitized photographic collections nearly
+impossible except with large organizations like museums * Need for study
+to determine quality of images users will tolerate *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+During the brief exchange between LESK and BESSER that followed, several
+clarifications emerged.
+
+LESK argued that the photographers were far ahead of BESSER: It is
+almost impossible to create such digitized photographic collections
+except with large organizations like museums, because all the
+photographic agencies have been going crazy about this and will not sign
+licensing agreements on any sort of reasonable terms. LESK had heard
+that National Geographic, for example, had tried to buy the right to use
+some image in some kind of educational production for $100 per image, but
+the photographers will not touch it. They want accounting and payment
+for each use, which cannot be accomplished within the system. BESSER
+responded that a consortium of photographers, headed by a former National
+Geographic photographer, had started assembling its own collection of
+electronic reproductions of images, with the money going back to the
+cooperative.
+
+LESK contended that BESSER was unnecessarily pessimistic about multimedia
+images, because people are accustomed to low-quality images, particularly
+from video. BESSER urged the launching of a study to determine what
+users would tolerate, what they would feel comfortable with, and what
+absolutely is the highest quality they would ever need. Conceding that
+he had adopted a dire tone in order to arouse people about the issue,
+BESSER closed on a sanguine note by saying that he would not be in this
+business if he did not think that things could be accomplished.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+LARSEN * Issues of scalability and modularity * Geometric growth of the
+Internet and the role played by layering * Basic functions sustaining
+this growth * A library's roles and functions in a network environment *
+Effects of implementation of the Z39.50 protocol for information
+retrieval on the library system * The trade-off between volumes of data
+and its potential usage * A snapshot of current trends *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Ronald LARSEN, associate director for information technology, University
+of Maryland at College Park, first addressed the issues of scalability
+and modularity. He noted the difficulty of anticipating the effects of
+orders-of-magnitude growth, reflecting on the twenty years of experience
+with the Arpanet and Internet. Recalling the day's demonstrations of
+CD-ROM and optical disk material, he went on to ask if the field has yet
+learned how to scale new systems to enable delivery and dissemination
+across large-scale networks.
+
+LARSEN focused on the geometric growth of the Internet from its inception
+circa 1969 to the present, and the adjustments required to respond to
+that rapid growth. To illustrate the issue of scalability, LARSEN
+considered computer networks as including three generic components:
+computers, network communication nodes, and communication media. Each
+component scales (e.g., computers range from PCs to supercomputers;
+network nodes scale from interface cards in a PC through sophisticated
+routers and gateways; and communication media range from 2,400-baud
+dial-up facilities through 4.5-Mbps backbone links, and eventually to
+multigigabit-per-second communication lines), and architecturally, the
+components are organized to scale hierarchically from local area networks
+to international-scale networks. Such growth is made possible by
+building layers of communication protocols, as BESSER pointed out.
+By layering both physically and logically, a sense of scalability is
+maintained from local area networks in offices, across campuses, through
+bridges, routers, campus backbones, fiber-optic links, etc., up into
+regional networks and ultimately into national and international
+networks.
+
+LARSEN then illustrated the geometric growth over a two-year period--
+through September 1991--of the number of networks that comprise the
+Internet. This growth has been sustained largely by the availability of
+three basic functions: electronic mail, file transfer (ftp), and remote
+log-on (telnet). LARSEN also reviewed the growth in the kind of traffic
+that occurs on the network. Network traffic reflects the joint contributions
+of a larger population of users and increasing use per user. Today one sees
+serious applications involving moving images across the network--a rarity
+ten years ago. LARSEN recalled and concurred with BESSER's main point
+that the interesting problems occur at the application level.
+
+LARSEN then illustrated a model of a library's roles and functions in a
+network environment. He noted, in particular, the placement of on-line
+catalogues onto the network and patrons obtaining access to the library
+increasingly through local networks, campus networks, and the Internet.
+LARSEN supported LYNCH's earlier suggestion that we need to address
+fundamental questions of networked information in order to build
+environments that scale in the information sense as well as in the
+physical sense.
+
+LARSEN supported the role of the library system as the access point into
+the nation's electronic collections. Implementation of the Z39.50
+protocol for information retrieval would make such access practical and
+feasible. For example, this would enable patrons in Maryland to search
+California libraries, or other libraries around the world that are
+conformant with Z39.50 in a manner that is familiar to University of
+Maryland patrons. This client-server model also supports moving beyond
+secondary content into primary content. (The notion of how one links
+from secondary content to primary content, LARSEN said, represents a
+fundamental problem that requires rigorous thought.) After noting
+numerous network experiments in accessing full-text materials, including
+projects supporting the ordering of materials across the network, LARSEN
+revisited the issue of transmitting high-density, high-resolution color
+images across the network and the large amounts of bandwidth they
+require. He went on to address the bandwidth and synchronization
+problems inherent in sending full-motion video across the network.
+
+LARSEN illustrated the trade-off between volumes of data in bytes or
+orders of magnitude and the potential usage of that data. He discussed
+transmission rates (particularly, the time it takes to move various forms
+of information), and what one could do with a network supporting
+multigigabit-per-second transmission. At the moment, the network
+environment includes a composite of data-transmission requirements,
+volumes and forms, going from steady to bursty (high-volume) and from
+very slow to very fast. This aggregate must be considered in the design,
+construction, and operation of multigigabyte networks.
+
+LARSEN's objective is to use the networks and library systems now being
+constructed to increase access to resources wherever they exist, and
+thus, to evolve toward an on-line electronic virtual library.
+
+LARSEN concluded by offering a snapshot of current trends: continuing
+geometric growth in network capacity and number of users; slower
+development of applications; and glacial development and adoption of
+standards. The challenge is to design and develop each new application
+system with network access and scalability in mind.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+BROWNRIGG * Access to the Internet cannot be taken for granted * Packet
+radio and the development of MELVYL in 1980-81 in the Division of Library
+Automation at the University of California * Design criteria for packet
+radio * A demonstration project in San Diego and future plans * Spread
+spectrum * Frequencies at which the radios will run and plans to
+reimplement the WAIS server software in the public domain * Need for an
+infrastructure of radios that do not move around *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Edwin BROWNRIGG, executive director, Memex Research Institute, first
+polled the audience in order to seek out regular users of the Internet as
+well as those planning to use it some time in the future. With nearly
+everybody in the room falling into one category or the other, BROWNRIGG
+made a point re access, namely that numerous individuals, especially those
+who use the Internet every day, take for granted their access to it, the
+speeds with which they are connected, and how well it all works.
+However, as BROWNRIGG discovered between 1987 and 1989 in Australia,
+if one wants access to the Internet but cannot afford it or has some
+physical boundary that prevents her or him from gaining access, it can
+be extremely frustrating. He suggested that because of economics and
+physical barriers we were beginning to create a world of haves and have-nots
+in the process of scholarly communication, even in the United States.
+
+BROWNRIGG detailed the development of MELVYL in academic year 1980-81 in
+the Division of Library Automation at the University of California, in
+order to underscore the issue of access to the system, which at the
+outset was extremely limited. In short, the project needed to build a
+network, which at that time entailed use of satellite technology, that is,
+putting earth stations on campus and also acquiring some terrestrial links
+from the State of California's microwave system. The installation of
+satellite links, however, did not solve the problem (which actually
+formed part of a larger problem involving politics and financial resources).
+For while the project team could get a signal onto a campus, it had no means
+of distributing the signal throughout the campus. The solution involved
+adopting a recent development in wireless communication called packet radio,
+which combined the basic notion of packet-switching with radio. The project
+used this technology to get the signal from a point on campus where it
+came down, an earth station for example, into the libraries, because it
+found that wiring the libraries, especially the older marble buildings,
+would cost $2,000-$5,000 per terminal.
+
+BROWNRIGG noted that, ten years ago, the project had neither the public
+policy nor the technology that would have allowed it to use packet radio
+in any meaningful way. Since then much had changed. He proceeded to
+detail research and development of the technology, how it is being
+deployed in California, and what direction he thought it would take.
+The design criteria are to produce a high-speed, one-time, low-cost,
+high-quality, secure, license-free device (packet radio) that one can
+plug in and play today, forget about it, and have access to the Internet.
+By high speed, BROWNRIGG meant 1 megabyte and 1.5 megabytes. Those units
+have been built, he continued, and are in the process of being
+type-certified by an independent underwriting laboratory so that they can
+be type-licensed by the Federal Communications Commission. As is the
+case with citizens band, one will be able to purchase a unit and not have
+to worry about applying for a license.
+
+The basic idea, BROWNRIGG elaborated, is to take high-speed radio data
+transmission and create a backbone network that at certain strategic
+points in the network will "gateway" into a medium-speed packet radio
+(i.e., one that runs at 38.4 kilobytes), so that perhaps by 1994-1995
+people, like those in the audience for the price of a VCR could purchase
+a medium-speed radio for the office or home, have full network connectivity
+to the Internet, and partake of all its services, with no need for an FCC
+license and no regular bill from the local common carrier. BROWNRIGG
+presented several details of a demonstration project currently taking
+place in San Diego and described plans, pending funding, to install a
+full-bore network in the San Francisco area. This network will have 600
+nodes running at backbone speeds, and 100 of these nodes will be libraries,
+which in turn will be the gateway ports to the 38.4 kilobyte radios that
+will give coverage for the neighborhoods surrounding the libraries.
+
+BROWNRIGG next explained Part 15.247, a new rule within Title 47 of the
+Code of Federal Regulations enacted by the FCC in 1985. This rule
+challenged the industry, which has only now risen to the occasion, to
+build a radio that would run at no more than one watt of output power and
+use a fairly exotic method of modulating the radio wave called spread
+spectrum. Spread spectrum in fact permits the building of networks so
+that numerous data communications can occur simultaneously, without
+interfering with each other, within the same wide radio channel.
+
+BROWNRIGG explained that the frequencies at which the radios would run
+are very short wave signals. They are well above standard microwave and
+radar. With a radio wave that small, one watt becomes a tremendous punch
+per bit and thus makes transmission at reasonable speed possible. In
+order to minimize the potential for congestion, the project is
+undertaking to reimplement software which has been available in the
+networking business and is taken for granted now, for example, TCP/IP,
+routing algorithms, bridges, and gateways. In addition, the project
+plans to take the WAIS server software in the public domain and
+reimplement it so that one can have a WAIS server on a Mac instead of a
+Unix machine. The Memex Research Institute believes that libraries, in
+particular, will want to use the WAIS servers with packet radio. This
+project, which has a team of about twelve people, will run through 1993
+and will include the 100 libraries already mentioned as well as other
+professionals such as those in the medical profession, engineering, and
+law. Thus, the need is to create an infrastructure of radios that do not
+move around, which, BROWNRIGG hopes, will solve a problem not only for
+libraries but for individuals who, by and large today, do not have access
+to the Internet from their homes and offices.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Project operating frequencies *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+During a brief discussion period, which also concluded the day's
+proceedings, BROWNRIGG stated that the project was operating in four
+frequencies. The slow speed is operating at 435 megahertz, and it would
+later go up to 920 megahertz. With the high-speed frequency, the
+one-megabyte radios will run at 2.4 gigabits, and 1.5 will run at 5.7.
+At 5.7, rain can be a factor, but it would have to be tropical rain,
+unlike what falls in most parts of the United States.
+
+ ******
+
+SESSION IV. IMAGE CAPTURE, TEXT CAPTURE, OVERVIEW OF TEXT AND
+ IMAGE STORAGE FORMATS
+
+William HOOTON, vice president of operations, I-NET, moderated this session.
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+KENNEY * Factors influencing development of CXP * Advantages of using
+digital technology versus photocopy and microfilm * A primary goal of
+CXP; publishing challenges * Characteristics of copies printed * Quality
+of samples achieved in image capture * Several factors to be considered
+in choosing scanning * Emphasis of CXP on timely and cost-effective
+production of black-and-white printed facsimiles * Results of producing
+microfilm from digital files * Advantages of creating microfilm * Details
+concerning production * Costs * Role of digital technology in library
+preservation *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Anne KENNEY, associate director, Department of Preservation and
+Conservation, Cornell University, opened her talk by observing that the
+Cornell Xerox Project (CXP) has been guided by the assumption that the
+ability to produce printed facsimiles or to replace paper with paper
+would be important, at least for the present generation of users and
+equipment. She described three factors that influenced development of
+the project: 1) Because the project has emphasized the preservation of
+deteriorating brittle books, the quality of what was produced had to be
+sufficiently high to return a paper replacement to the shelf. CXP was
+only interested in using: 2) a system that was cost-effective, which
+meant that it had to be cost-competitive with the processes currently
+available, principally photocopy and microfilm, and 3) new or currently
+available product hardware and software.
+
+KENNEY described the advantages that using digital technology offers over
+both photocopy and microfilm: 1) The potential exists to create a higher
+quality reproduction of a deteriorating original than conventional
+light-lens technology. 2) Because a digital image is an encoded
+representation, it can be reproduced again and again with no resulting
+loss of quality, as opposed to the situation with light-lens processes,
+in which there is discernible difference between a second and a
+subsequent generation of an image. 3) A digital image can be manipulated
+in a number of ways to improve image capture; for example, Xerox has
+developed a windowing application that enables one to capture a page
+containing both text and illustrations in a manner that optimizes the
+reproduction of both. (With light-lens technology, one must choose which
+to optimize, text or the illustration; in preservation microfilming, the
+current practice is to shoot an illustrated page twice, once to highlight
+the text and the second time to provide the best capture for the
+illustration.) 4) A digital image can also be edited, density levels
+adjusted to remove underlining and stains, and to increase legibility for
+faint documents. 5) On-screen inspection can take place at the time of
+initial setup and adjustments made prior to scanning, factors that
+substantially reduce the number of retakes required in quality control.
+
+A primary goal of CXP has been to evaluate the paper output printed on
+the Xerox DocuTech, a high-speed printer that produces 600-dpi pages from
+scanned images at a rate of 135 pages a minute. KENNEY recounted several
+publishing challenges to represent faithful and legible reproductions of
+the originals that the 600-dpi copy for the most part successfully
+captured. For example, many of the deteriorating volumes in the project
+were heavily illustrated with fine line drawings or halftones or came in
+languages such as Japanese, in which the buildup of characters comprised
+of varying strokes is difficult to reproduce at lower resolutions; a
+surprising number of them came with annotations and mathematical
+formulas, which it was critical to be able to duplicate exactly.
+
+KENNEY noted that 1) the copies are being printed on paper that meets the
+ANSI standards for performance, 2) the DocuTech printer meets the machine
+and toner requirements for proper adhesion of print to page, as described
+by the National Archives, and thus 3) paper product is considered to be
+the archival equivalent of preservation photocopy.
+
+KENNEY then discussed several samples of the quality achieved in the
+project that had been distributed in a handout, for example, a copy of a
+print-on-demand version of the 1911 Reed lecture on the steam turbine,
+which contains halftones, line drawings, and illustrations embedded in
+text; the first four loose pages in the volume compared the capture
+capabilities of scanning to photocopy for a standard test target, the
+IEEE standard 167A 1987 test chart. In all instances scanning proved
+superior to photocopy, though only slightly more so in one.
+
+Conceding the simplistic nature of her review of the quality of scanning
+to photocopy, KENNEY described it as one representation of the kinds of
+settings that could be used with scanning capabilities on the equipment
+CXP uses. KENNEY also pointed out that CXP investigated the quality
+achieved with binary scanning only, and noted the great promise in gray
+scale and color scanning, whose advantages and disadvantages need to be
+examined. She argued further that scanning resolutions and file formats
+can represent a complex trade-off between the time it takes to capture
+material, file size, fidelity to the original, and on-screen display; and
+printing and equipment availability. All these factors must be taken
+into consideration.
+
+CXP placed primary emphasis on the production in a timely and
+cost-effective manner of printed facsimiles that consisted largely of
+black-and-white text. With binary scanning, large files may be
+compressed efficiently and in a lossless manner (i.e., no data is lost in
+the process of compressing [and decompressing] an image--the exact
+bit-representation is maintained) using Group 4 CCITT (i.e., the French
+acronym for International Consultative Committee for Telegraph and
+Telephone) compression. CXP was getting compression ratios of about
+forty to one. Gray-scale compression, which primarily uses JPEG, is much
+less economical and can represent a lossy compression (i.e., not
+lossless), so that as one compresses and decompresses, the illustration
+is subtly changed. While binary files produce a high-quality printed
+version, it appears 1) that other combinations of spatial resolution with
+gray and/or color hold great promise as well, and 2) that gray scale can
+represent a tremendous advantage for on-screen viewing. The quality
+associated with binary and gray scale also depends on the equipment used.
+For instance, binary scanning produces a much better copy on a binary
+printer.
+
+Among CXP's findings concerning the production of microfilm from digital
+files, KENNEY reported that the digital files for the same Reed lecture
+were used to produce sample film using an electron beam recorder. The
+resulting film was faithful to the image capture of the digital files,
+and while CXP felt that the text and image pages represented in the Reed
+lecture were superior to that of the light-lens film, the resolution
+readings for the 600 dpi were not as high as standard microfilming.
+KENNEY argued that the standards defined for light-lens technology are
+not totally transferable to a digital environment. Moreover, they are
+based on definition of quality for a preservation copy. Although making
+this case will prove to be a long, uphill struggle, CXP plans to continue
+to investigate the issue over the course of the next year.
+
+KENNEY concluded this portion of her talk with a discussion of the
+advantages of creating film: it can serve as a primary backup and as a
+preservation master to the digital file; it could then become the print
+or production master and service copies could be paper, film, optical
+disks, magnetic media, or on-screen display.
+
+Finally, KENNEY presented details re production:
+
+ * Development and testing of a moderately-high resolution production
+ scanning workstation represented a third goal of CXP; to date, 1,000
+ volumes have been scanned, or about 300,000 images.
+
+ * The resulting digital files are stored and used to produce
+ hard-copy replacements for the originals and additional prints on
+ demand; although the initial costs are high, scanning technology
+ offers an affordable means for reformatting brittle material.
+
+ * A technician in production mode can scan 300 pages per hour when
+ performing single-sheet scanning, which is a necessity when working
+ with truly brittle paper; this figure is expected to increase
+ significantly with subsequent iterations of the software from Xerox;
+ a three-month time-and-cost study of scanning found that the average
+ 300-page book would take about an hour and forty minutes to scan
+ (this figure included the time for setup, which involves keying in
+ primary bibliographic data, going into quality control mode to
+ define page size, establishing front-to-back registration, and
+ scanning sample pages to identify a default range of settings for
+ the entire book--functions not dissimilar to those performed by
+ filmers or those preparing a book for photocopy).
+
+ * The final step in the scanning process involved rescans, which
+ happily were few and far between, representing well under 1 percent
+ of the total pages scanned.
+
+In addition to technician time, CXP costed out equipment, amortized over
+four years, the cost of storing and refreshing the digital files every
+four years, and the cost of printing and binding, book-cloth binding, a
+paper reproduction. The total amounted to a little under $65 per single
+300-page volume, with 30 percent overhead included--a figure competitive
+with the prices currently charged by photocopy vendors.
+
+Of course, with scanning, in addition to the paper facsimile, one is left
+with a digital file from which subsequent copies of the book can be
+produced for a fraction of the cost of photocopy, with readers afforded
+choices in the form of these copies.
+
+KENNEY concluded that digital technology offers an electronic means for a
+library preservation effort to pay for itself. If a brittle-book program
+included the means of disseminating reprints of books that are in demand
+by libraries and researchers alike, the initial investment in capture
+could be recovered and used to preserve additional but less popular
+books. She disclosed that an economic model for a self-sustaining
+program could be developed for CXP's report to the Commission on
+Preservation and Access (CPA).
+
+KENNEY stressed that the focus of CXP has been on obtaining high quality
+in a production environment. The use of digital technology is viewed as
+an affordable alternative to other reformatting options.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ANDRE * Overview and history of NATDP * Various agricultural CD-ROM
+products created inhouse and by service bureaus * Pilot project on
+Internet transmission * Additional products in progress *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Pamela ANDRE, associate director for automation, National Agricultural
+Text Digitizing Program (NATDP), National Agricultural Library (NAL),
+presented an overview of NATDP, which has been underway at NAL the last
+four years, before Judith ZIDAR discussed the technical details. ANDRE
+defined agricultural information as a broad range of material going from
+basic and applied research in the hard sciences to the one-page pamphlets
+that are distributed by the cooperative state extension services on such
+things as how to grow blueberries.
+
+NATDP began in late 1986 with a meeting of representatives from the
+land-grant library community to deal with the issue of electronic
+information. NAL and forty-five of these libraries banded together to
+establish this project--to evaluate the technology for converting what
+were then source documents in paper form into electronic form, to provide
+access to that digital information, and then to distribute it.
+Distributing that material to the community--the university community as
+well as the extension service community, potentially down to the county
+level--constituted the group's chief concern.
+
+Since January 1988 (when the microcomputer-based scanning system was
+installed at NAL), NATDP has done a variety of things, concerning which
+ZIDAR would provide further details. For example, the first technology
+considered in the project's discussion phase was digital videodisc, which
+indicates how long ago it was conceived.
+
+Over the four years of this project, four separate CD-ROM products on
+four different agricultural topics were created, two at a
+scanning-and-OCR station installed at NAL, and two by service bureaus.
+Thus, NATDP has gained comparative information in terms of those relative
+costs. Each of these products contained the full ASCII text as well as
+page images of the material, or between 4,000 and 6,000 pages of material
+on these disks. Topics included aquaculture, food, agriculture and
+science (i.e., international agriculture and research), acid rain, and
+Agent Orange, which was the final product distributed (approximately
+eighteen months before the Workshop).
+
+The third phase of NATDP focused on delivery mechanisms other than
+CD-ROM. At the suggestion of Clifford LYNCH, who was a technical
+consultant to the project at this point, NATDP became involved with the
+Internet and initiated a project with the help of North Carolina State
+University, in which fourteen of the land-grant university libraries are
+transmitting digital images over the Internet in response to interlibrary
+loan requests--a topic for another meeting. At this point, the pilot
+project had been completed for about a year and the final report would be
+available shortly after the Workshop. In the meantime, the project's
+success had led to its extension. (ANDRE noted that one of the first
+things done under the program title was to select a retrieval package to
+use with subsequent products; Windows Personal Librarian was the package
+of choice after a lengthy evaluation.)
+
+Three additional products had been planned and were in progress:
+
+ 1) An arrangement with the American Society of Agronomy--a
+ professional society that has published the Agronomy Journal since
+ about 1908--to scan and create bit-mapped images of its journal.
+ ASA granted permission first to put and then to distribute this
+ material in electronic form, to hold it at NAL, and to use these
+ electronic images as a mechanism to deliver documents or print out
+ material for patrons, among other uses. Effectively, NAL has the
+ right to use this material in support of its program.
+ (Significantly, this arrangement offers a potential cooperative
+ model for working with other professional societies in agriculture
+ to try to do the same thing--put the journals of particular interest
+ to agriculture research into electronic form.)
+
+ 2) An extension of the earlier product on aquaculture.
+
+ 3) The George Washington Carver Papers--a joint project with
+ Tuskegee University to scan and convert from microfilm some 3,500
+ images of Carver's papers, letters, and drawings.
+
+It was anticipated that all of these products would appear no more than
+six months after the Workshop.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ZIDAR * (A separate arena for scanning) * Steps in creating a database *
+Image capture, with and without performing OCR * Keying in tracking data
+* Scanning, with electronic and manual tracking * Adjustments during
+scanning process * Scanning resolutions * Compression * De-skewing and
+filtering * Image capture from microform: the papers and letters of
+George Washington Carver * Equipment used for a scanning system *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Judith ZIDAR, coordinator, National Agricultural Text Digitizing Program
+(NATDP), National Agricultural Library (NAL), illustrated the technical
+details of NATDP, including her primary responsibility, scanning and
+creating databases on a topic and putting them on CD-ROM.
+
+(ZIDAR remarked a separate arena from the CD-ROM projects, although the
+processing of the material is nearly identical, in which NATDP is also
+scanning material and loading it on a Next microcomputer, which in turn
+is linked to NAL's integrated library system. Thus, searches in NAL's
+bibliographic database will enable people to pull up actual page images
+and text for any documents that have been entered.)
+
+In accordance with the session's topic, ZIDAR focused her illustrated
+talk on image capture, offering a primer on the three main steps in the
+process: 1) assemble the printed publications; 2) design the database
+(database design occurs in the process of preparing the material for
+scanning; this step entails reviewing and organizing the material,
+defining the contents--what will constitute a record, what kinds of
+fields will be captured in terms of author, title, etc.); 3) perform a
+certain amount of markup on the paper publications. NAL performs this
+task record by record, preparing work sheets or some other sort of
+tracking material and designing descriptors and other enhancements to be
+added to the data that will not be captured from the printed publication.
+Part of this process also involves determining NATDP's file and directory
+structure: NATDP attempts to avoid putting more than approximately 100
+images in a directory, because placing more than that on a CD-ROM would
+reduce the access speed.
+
+This up-front process takes approximately two weeks for a
+6,000-7,000-page database. The next step is to capture the page images.
+How long this process takes is determined by the decision whether or not
+to perform OCR. Not performing OCR speeds the process, whereas text
+capture requires greater care because of the quality of the image: it
+has to be straighter and allowance must be made for text on a page, not
+just for the capture of photographs.
+
+NATDP keys in tracking data, that is, a standard bibliographic record
+including the title of the book and the title of the chapter, which will
+later either become the access information or will be attached to the
+front of a full-text record so that it is searchable.
+
+Images are scanned from a bound or unbound publication, chiefly from
+bound publications in the case of NATDP, however, because often they are
+the only copies and the publications are returned to the shelves. NATDP
+usually scans one record at a time, because its database tracking system
+tracks the document in that way and does not require further logical
+separating of the images. After performing optical character
+recognition, NATDP moves the images off the hard disk and maintains a
+volume sheet. Though the system tracks electronically, all the
+processing steps are also tracked manually with a log sheet.
+
+ZIDAR next illustrated the kinds of adjustments that one can make when
+scanning from paper and microfilm, for example, redoing images that need
+special handling, setting for dithering or gray scale, and adjusting for
+brightness or for the whole book at one time.
+
+NATDP is scanning at 300 dots per inch, a standard scanning resolution.
+Though adequate for capturing text that is all of a standard size, 300
+dpi is unsuitable for any kind of photographic material or for very small
+text. Many scanners allow for different image formats, TIFF, of course,
+being a de facto standard. But if one intends to exchange images with
+other people, the ability to scan other image formats, even if they are
+less common, becomes highly desirable.
+
+CCITT Group 4 is the standard compression for normal black-and-white
+images, JPEG for gray scale or color. ZIDAR recommended 1) using the
+standard compressions, particularly if one attempts to make material
+available and to allow users to download images and reuse them from
+CD-ROMs; and 2) maintaining the ability to output an uncompressed image,
+because in image exchange uncompressed images are more likely to be able
+to cross platforms.
+
+ZIDAR emphasized the importance of de-skewing and filtering as
+requirements on NATDP's upgraded system. For instance, scanning bound
+books, particularly books published by the federal government whose pages
+are skewed, and trying to scan them straight if OCR is to be performed,
+is extremely time-consuming. The same holds for filtering of
+poor-quality or older materials.
+
+ZIDAR described image capture from microform, using as an example three
+reels from a sixty-seven-reel set of the papers and letters of George
+Washington Carver that had been produced by Tuskegee University. These
+resulted in approximately 3,500 images, which NATDP had had scanned by
+its service contractor, Science Applications International Corporation
+(SAIC). NATDP also created bibliographic records for access. (NATDP did
+not have such specialized equipment as a microfilm scanner.
+
+Unfortunately, the process of scanning from microfilm was not an
+unqualified success, ZIDAR reported: because microfilm frame sizes vary,
+occasionally some frames were missed, which without spending much time
+and money could not be recaptured.
+
+OCR could not be performed from the scanned images of the frames. The
+bleeding in the text simply output text, when OCR was run, that could not
+even be edited. NATDP tested for negative versus positive images,
+landscape versus portrait orientation, and single- versus dual-page
+microfilm, none of which seemed to affect the quality of the image; but
+also on none of them could OCR be performed.
+
+In selecting the microfilm they would use, therefore, NATDP had other
+factors in mind. ZIDAR noted two factors that influenced the quality of
+the images: 1) the inherent quality of the original and 2) the amount of
+size reduction on the pages.
+
+The Carver papers were selected because they are informative and visually
+interesting, treat a single subject, and are valuable in their own right.
+The images were scanned and divided into logical records by SAIC, then
+delivered, and loaded onto NATDP's system, where bibliographic
+information taken directly from the images was added. Scanning was
+completed in summer 1991 and by the end of summer 1992 the disk was
+scheduled to be published.
+
+Problems encountered during processing included the following: Because
+the microfilm scanning had to be done in a batch, adjustment for
+individual page variations was not possible. The frame size varied on
+account of the nature of the material, and therefore some of the frames
+were missed while others were just partial frames. The only way to go
+back and capture this material was to print out the page with the
+microfilm reader from the missing frame and then scan it in from the
+page, which was extremely time-consuming. The quality of the images
+scanned from the printout of the microfilm compared unfavorably with that
+of the original images captured directly from the microfilm. The
+inability to perform OCR also was a major disappointment. At the time,
+computer output microfilm was unavailable to test.
+
+The equipment used for a scanning system was the last topic addressed by
+ZIDAR. The type of equipment that one would purchase for a scanning
+system included: a microcomputer, at least a 386, but preferably a 486;
+a large hard disk, 380 megabyte at minimum; a multi-tasking operating
+system that allows one to run some things in batch in the background
+while scanning or doing text editing, for example, Unix or OS/2 and,
+theoretically, Windows; a high-speed scanner and scanning software that
+allows one to make the various adjustments mentioned earlier; a
+high-resolution monitor (150 dpi ); OCR software and hardware to perform
+text recognition; an optical disk subsystem on which to archive all the
+images as the processing is done; file management and tracking software.
+
+ZIDAR opined that the software one purchases was more important than the
+hardware and might also cost more than the hardware, but it was likely to
+prove critical to the success or failure of one's system. In addition to
+a stand-alone scanning workstation for image capture, then, text capture
+requires one or two editing stations networked to this scanning station
+to perform editing. Editing the text takes two or three times as long as
+capturing the images.
+
+Finally, ZIDAR stressed the importance of buying an open system that allows
+for more than one vendor, complies with standards, and can be upgraded.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+WATERS *Yale University Library's master plan to convert microfilm to
+digital imagery (POB) * The place of electronic tools in the library of
+the future * The uses of images and an image library * Primary input from
+preservation microfilm * Features distinguishing POB from CXP and key
+hypotheses guiding POB * Use of vendor selection process to facilitate
+organizational work * Criteria for selecting vendor * Finalists and
+results of process for Yale * Key factor distinguishing vendors *
+Components, design principles, and some estimated costs of POB * Role of
+preservation materials in developing imaging market * Factors affecting
+quality and cost * Factors affecting the usability of complex documents
+in image form *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Donald WATERS, head of the Systems Office, Yale University Library,
+reported on the progress of a master plan for a project at Yale to
+convert microfilm to digital imagery, Project Open Book (POB). Stating
+that POB was in an advanced stage of planning, WATERS detailed, in
+particular, the process of selecting a vendor partner and several key
+issues under discussion as Yale prepares to move into the project itself.
+He commented first on the vision that serves as the context of POB and
+then described its purpose and scope.
+
+WATERS sees the library of the future not necessarily as an electronic
+library but as a place that generates, preserves, and improves for its
+clients ready access to both intellectual and physical recorded
+knowledge. Electronic tools must find a place in the library in the
+context of this vision. Several roles for electronic tools include
+serving as: indirect sources of electronic knowledge or as "finding"
+aids (the on-line catalogues, the article-level indices, registers for
+documents and archives); direct sources of recorded knowledge; full-text
+images; and various kinds of compound sources of recorded knowledge (the
+so-called compound documents of Hypertext, mixed text and image,
+mixed-text image format, and multimedia).
+
+POB is looking particularly at images and an image library, the uses to
+which images will be put (e.g., storage, printing, browsing, and then use
+as input for other processes), OCR as a subsequent process to image
+capture, or creating an image library, and also possibly generating
+microfilm.
+
+While input will come from a variety of sources, POB is considering
+especially input from preservation microfilm. A possible outcome is that
+the film and paper which provide the input for the image library
+eventually may go off into remote storage, and that the image library may
+be the primary access tool.
+
+The purpose and scope of POB focus on imaging. Though related to CXP,
+POB has two features which distinguish it: 1) scale--conversion of
+10,000 volumes into digital image form; and 2) source--conversion from
+microfilm. Given these features, several key working hypotheses guide
+POB, including: 1) Since POB is using microfilm, it is not concerned with
+the image library as a preservation medium. 2) Digital imagery can improve
+access to recorded knowledge through printing and network distribution at
+a modest incremental cost of microfilm. 3) Capturing and storing documents
+in a digital image form is necessary to further improvements in access.
+(POB distinguishes between the imaging, digitizing process and OCR,
+which at this stage it does not plan to perform.)
+
+Currently in its first or organizational phase, POB found that it could
+use a vendor selection process to facilitate a good deal of the
+organizational work (e.g., creating a project team and advisory board,
+confirming the validity of the plan, establishing the cost of the project
+and a budget, selecting the materials to convert, and then raising the
+necessary funds).
+
+POB developed numerous selection criteria, including: a firm committed
+to image-document management, the ability to serve as systems integrator
+in a large-scale project over several years, interest in developing the
+requisite software as a standard rather than a custom product, and a
+willingness to invest substantial resources in the project itself.
+
+Two vendors, DEC and Xerox, were selected as finalists in October 1991,
+and with the support of the Commission on Preservation and Access, each
+was commissioned to generate a detailed requirements analysis for the
+project and then to submit a formal proposal for the completion of the
+project, which included a budget and costs. The terms were that POB would
+pay the loser. The results for Yale of involving a vendor included:
+broad involvement of Yale staff across the board at a relatively low
+cost, which may have long-term significance in carrying out the project
+(twenty-five to thirty university people are engaged in POB); better
+understanding of the factors that affect corporate response to markets
+for imaging products; a competitive proposal; and a more sophisticated
+view of the imaging markets.
+
+The most important factor that distinguished the vendors under
+consideration was their identification with the customer. The size and
+internal complexity of the company also was an important factor. POB was
+looking at large companies that had substantial resources. In the end,
+the process generated for Yale two competitive proposals, with Xerox's
+the clear winner. WATERS then described the components of the proposal,
+the design principles, and some of the costs estimated for the process.
+
+Components are essentially four: a conversion subsystem, a
+network-accessible storage subsystem for 10,000 books (and POB expects
+200 to 600 dpi storage), browsing stations distributed on the campus
+network, and network access to the image printers.
+
+Among the design principles, POB wanted conversion at the highest
+possible resolution. Assuming TIFF files, TIFF files with Group 4
+compression, TCP/IP, and ethernet network on campus, POB wanted a
+client-server approach with image documents distributed to the
+workstations and made accessible through native workstation interfaces
+such as Windows. POB also insisted on a phased approach to
+implementation: 1) a stand-alone, single-user, low-cost entry into the
+business with a workstation focused on conversion and allowing POB to
+explore user access; 2) movement into a higher-volume conversion with
+network-accessible storage and multiple access stations; and 3) a
+high-volume conversion, full-capacity storage, and multiple browsing
+stations distributed throughout the campus.
+
+The costs proposed for start-up assumed the existence of the Yale network
+and its two DocuTech image printers. Other start-up costs are estimated
+at $1 million over the three phases. At the end of the project, the annual
+operating costs estimated primarily for the software and hardware proposed
+come to about $60,000, but these exclude costs for labor needed in the
+conversion process, network and printer usage, and facilities management.
+
+Finally, the selection process produced for Yale a more sophisticated
+view of the imaging markets: the management of complex documents in
+image form is not a preservation problem, not a library problem, but a
+general problem in a broad, general industry. Preservation materials are
+useful for developing that market because of the qualities of the
+material. For example, much of it is out of copyright. The resolution
+of key issues such as the quality of scanning and image browsing also
+will affect development of that market.
+
+The technology is readily available but changing rapidly. In this
+context of rapid change, several factors affect quality and cost, to
+which POB intends to pay particular attention, for example, the various
+levels of resolution that can be achieved. POB believes it can bring
+resolution up to 600 dpi, but an interpolation process from 400 to 600 is
+more likely. The variation quality in microfilm will prove to be a
+highly important factor. POB may reexamine the standards used to film in
+the first place by looking at this process as a follow-on to microfilming.
+
+Other important factors include: the techniques available to the
+operator for handling material, the ways of integrating quality control
+into the digitizing work flow, and a work flow that includes indexing and
+storage. POB's requirement was to be able to deal with quality control
+at the point of scanning. Thus, thanks to Xerox, POB anticipates having
+a mechanism which will allow it not only to scan in batch form, but to
+review the material as it goes through the scanner and control quality
+from the outset.
+
+The standards for measuring quality and costs depend greatly on the uses
+of the material, including subsequent OCR, storage, printing, and
+browsing. But especially at issue for POB is the facility for browsing.
+This facility, WATERS said, is perhaps the weakest aspect of imaging
+technology and the most in need of development.
+
+A variety of factors affect the usability of complex documents in image
+form, among them: 1) the ability of the system to handle the full range
+of document types, not just monographs but serials, multi-part
+monographs, and manuscripts; 2) the location of the database of record
+for bibliographic information about the image document, which POB wants
+to enter once and in the most useful place, the on-line catalog; 3) a
+document identifier for referencing the bibliographic information in one
+place and the images in another; 4) the technique for making the basic
+internal structure of the document accessible to the reader; and finally,
+5) the physical presentation on the CRT of those documents. POB is ready
+to complete this phase now. One last decision involves deciding which
+material to scan.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * TIFF files constitute de facto standard * NARA's experience
+with image conversion software and text conversion * RFC 1314 *
+Considerable flux concerning available hardware and software solutions *
+NAL through-put rate during scanning * Window management questions *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+In the question-and-answer period that followed WATERS's presentation,
+the following points emerged:
+
+ * ZIDAR's statement about using TIFF files as a standard meant de
+ facto standard. This is what most people use and typically exchange
+ with other groups, across platforms, or even occasionally across
+ display software.
+
+ * HOLMES commented on the unsuccessful experience of NARA in
+ attempting to run image-conversion software or to exchange between
+ applications: What are supposedly TIFF files go into other software
+ that is supposed to be able to accept TIFF but cannot recognize the
+ format and cannot deal with it, and thus renders the exchange
+ useless. Re text conversion, he noted the different recognition
+ rates obtained by substituting the make and model of scanners in
+ NARA's recent test of an "intelligent" character-recognition product
+ for a new company. In the selection of hardware and software,
+ HOLMES argued, software no longer constitutes the overriding factor
+ it did until about a year ago; rather it is perhaps important to
+ look at both now.
+
+ * Danny Cohen and Alan Katz of the University of Southern California
+ Information Sciences Institute began circulating as an Internet RFC
+ (RFC 1314) about a month ago a standard for a TIFF interchange
+ format for Internet distribution of monochrome bit-mapped images,
+ which LYNCH said he believed would be used as a de facto standard.
+
+ * FLEISCHHAUER's impression from hearing these reports and thinking
+ about AM's experience was that there is considerable flux concerning
+ available hardware and software solutions. HOOTON agreed and
+ commented at the same time on ZIDAR's statement that the equipment
+ employed affects the results produced. One cannot draw a complete
+ conclusion by saying it is difficult or impossible to perform OCR
+ from scanning microfilm, for example, with that device, that set of
+ parameters, and system requirements, because numerous other people
+ are accomplishing just that, using other components, perhaps.
+ HOOTON opined that both the hardware and the software were highly
+ important. Most of the problems discussed today have been solved in
+ numerous different ways by other people. Though it is good to be
+ cognizant of various experiences, this is not to say that it will
+ always be thus.
+
+ * At NAL, the through-put rate of the scanning process for paper,
+ page by page, performing OCR, ranges from 300 to 600 pages per day;
+ not performing OCR is considerably faster, although how much faster
+ is not known. This is for scanning from bound books, which is much
+ slower.
+
+ * WATERS commented on window management questions: DEC proposed an
+ X-Windows solution which was problematical for two reasons. One was
+ POB's requirement to be able to manipulate images on the workstation
+ and bring them down to the workstation itself and the other was
+ network usage.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+THOMA * Illustration of deficiencies in scanning and storage process *
+Image quality in this process * Different costs entailed by better image
+quality * Techniques for overcoming various de-ficiencies: fixed
+thresholding, dynamic thresholding, dithering, image merge * Page edge
+effects *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+George THOMA, chief, Communications Engineering Branch, National Library
+of Medicine (NLM), illustrated several of the deficiencies discussed by
+the previous speakers. He introduced the topic of special problems by
+noting the advantages of electronic imaging. For example, it is regenerable
+because it is a coded file, and real-time quality control is possible with
+electronic capture, whereas in photographic capture it is not.
+
+One of the difficulties discussed in the scanning and storage process was
+image quality which, without belaboring the obvious, means different
+things for maps, medical X-rays, or broadcast television. In the case of
+documents, THOMA said, image quality boils down to legibility of the
+textual parts, and fidelity in the case of gray or color photo print-type
+material. Legibility boils down to scan density, the standard in most
+cases being 300 dpi. Increasing the resolution with scanners that
+perform 600 or 1200 dpi, however, comes at a cost.
+
+Better image quality entails at least four different kinds of costs: 1)
+equipment costs, because the CCD (i.e., charge-couple device) with
+greater number of elements costs more; 2) time costs that translate to
+the actual capture costs, because manual labor is involved (the time is
+also dependent on the fact that more data has to be moved around in the
+machine in the scanning or network devices that perform the scanning as
+well as the storage); 3) media costs, because at high resolutions larger
+files have to be stored; and 4) transmission costs, because there is just
+more data to be transmitted.
+
+But while resolution takes care of the issue of legibility in image
+quality, other deficiencies have to do with contrast and elements on the
+page scanned or the image that needed to be removed or clarified. Thus,
+THOMA proceeded to illustrate various deficiencies, how they are
+manifested, and several techniques to overcome them.
+
+Fixed thresholding was the first technique described, suitable for
+black-and-white text, when the contrast does not vary over the page. One
+can have many different threshold levels in scanning devices. Thus,
+THOMA offered an example of extremely poor contrast, which resulted from
+the fact that the stock was a heavy red. This is the sort of image that
+when microfilmed fails to provide any legibility whatsoever. Fixed
+thresholding is the way to change the black-to-red contrast to the
+desired black-to-white contrast.
+
+Other examples included material that had been browned or yellowed by
+age. This was also a case of contrast deficiency, and correction was
+done by fixed thresholding. A final example boils down to the same
+thing, slight variability, but it is not significant. Fixed thresholding
+solves this problem as well. The microfilm equivalent is certainly legible,
+but it comes with dark areas. Though THOMA did not have a slide of the
+microfilm in this case, he did show the reproduced electronic image.
+
+When one has variable contrast over a page or the lighting over the page
+area varies, especially in the case where a bound volume has light
+shining on it, the image must be processed by a dynamic thresholding
+scheme. One scheme, dynamic averaging, allows the threshold level not to
+be fixed but to be recomputed for every pixel from the neighboring
+characteristics. The neighbors of a pixel determine where the threshold
+should be set for that pixel.
+
+THOMA showed an example of a page that had been made deficient by a
+variety of techniques, including a burn mark, coffee stains, and a yellow
+marker. Application of a fixed-thresholding scheme, THOMA argued, might
+take care of several deficiencies on the page but not all of them.
+Performing the calculation for a dynamic threshold setting, however,
+removes most of the deficiencies so that at least the text is legible.
+
+Another problem is representing a gray level with black-and-white pixels
+by a process known as dithering or electronic screening. But dithering
+does not provide good image quality for pure black-and-white textual
+material. THOMA illustrated this point with examples. Although its
+suitability for photoprint is the reason for electronic screening or
+dithering, it cannot be used for every compound image. In the document
+that was distributed by CXP, THOMA noticed that the dithered image of the
+IEEE test chart evinced some deterioration in the text. He presented an
+extreme example of deterioration in the text in which compounded
+documents had to be set right by other techniques. The technique
+illustrated by the present example was an image merge in which the page
+is scanned twice and the settings go from fixed threshold to the
+dithering matrix; the resulting images are merged to give the best
+results with each technique.
+
+THOMA illustrated how dithering is also used in nonphotographic or
+nonprint materials with an example of a grayish page from a medical text,
+which was reproduced to show all of the gray that appeared in the
+original. Dithering provided a reproduction of all the gray in the
+original of another example from the same text.
+
+THOMA finally illustrated the problem of bordering, or page-edge,
+effects. Books and bound volumes that are placed on a photocopy machine
+or a scanner produce page-edge effects that are undesirable for two
+reasons: 1) the aesthetics of the image; after all, if the image is to
+be preserved, one does not necessarily want to keep all of its
+deficiencies; 2) compression (with the bordering problem THOMA
+illustrated, the compression ratio deteriorated tremendously). One way
+to eliminate this more serious problem is to have the operator at the
+point of scanning window the part of the image that is desirable and
+automatically turn all of the pixels out of that picture to white.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+FLEISCHHAUER * AM's experience with scanning bound materials * Dithering
+*
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Carl FLEISCHHAUER, coordinator, American Memory, Library of Congress,
+reported AM's experience with scanning bound materials, which he likened
+to the problems involved in using photocopying machines. Very few
+devices in the industry offer book-edge scanning, let alone book cradles.
+The problem may be unsolvable, FLEISCHHAUER said, because a large enough
+market does not exist for a preservation-quality scanner. AM is using a
+Kurzweil scanner, which is a book-edge scanner now sold by Xerox.
+
+Devoting the remainder of his brief presentation to dithering,
+FLEISCHHAUER related AM's experience with a contractor who was using
+unsophisticated equipment and software to reduce moire patterns from
+printed halftones. AM took the same image and used the dithering
+algorithm that forms part of the same Kurzweil Xerox scanner; it
+disguised moire patterns much more effectively.
+
+FLEISCHHAUER also observed that dithering produces a binary file which is
+useful for numerous purposes, for example, printing it on a laser printer
+without having to "re-halftone" it. But it tends to defeat efficient
+compression, because the very thing that dithers to reduce moire patterns
+also tends to work against compression schemes. AM thought the
+difference in image quality was worth it.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Relative use as a criterion for POB's selection of books to
+be converted into digital form *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+During the discussion period, WATERS noted that one of the criteria for
+selecting books among the 10,000 to be converted into digital image form
+would be how much relative use they would receive--a subject still
+requiring evaluation. The challenge will be to understand whether
+coherent bodies of material will increase usage or whether POB should
+seek material that is being used, scan that, and make it more accessible.
+POB might decide to digitize materials that are already heavily used, in
+order to make them more accessible and decrease wear on them. Another
+approach would be to provide a large body of intellectually coherent
+material that may be used more in digital form than it is currently used
+in microfilm. POB would seek material that was out of copyright.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+BARONAS * Origin and scope of AIIM * Types of documents produced in
+AIIM's standards program * Domain of AIIM's standardization work * AIIM's
+structure * TC 171 and MS23 * Electronic image management standards *
+Categories of EIM standardization where AIIM standards are being
+developed *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Jean BARONAS, senior manager, Department of Standards and Technology,
+Association for Information and Image Management (AIIM), described the
+not-for-profit association and the national and international programs
+for standardization in which AIIM is active.
+
+Accredited for twenty-five years as the nation's standards development
+organization for document image management, AIIM began life in a library
+community developing microfilm standards. Today the association
+maintains both its library and business-image management standardization
+activities--and has moved into electronic image-management
+standardization (EIM).
+
+BARONAS defined the program's scope. AIIM deals with: 1) the
+terminology of standards and of the technology it uses; 2) methods of
+measurement for the systems, as well as quality; 3) methodologies for
+users to evaluate and measure quality; 4) the features of apparatus used
+to manage and edit images; and 5) the procedures used to manage images.
+
+BARONAS noted that three types of documents are produced in the AIIM
+standards program: the first two, accredited by the American National
+Standards Institute (ANSI), are standards and standard recommended
+practices. Recommended practices differ from standards in that they
+contain more tutorial information. A technical report is not an ANSI
+standard. Because AIIM's policies and procedures for developing
+standards are approved by ANSI, its standards are labeled ANSI/AIIM,
+followed by the number and title of the standard.
+
+BARONAS then illustrated the domain of AIIM's standardization work. For
+example, AIIM is the administrator of the U.S. Technical Advisory Group
+(TAG) to the International Standards Organization's (ISO) technical
+committee, TC l7l Micrographics and Optical Memories for Document and
+Image Recording, Storage, and Use. AIIM officially works through ANSI in
+the international standardization process.
+
+BARONAS described AIIM's structure, including its board of directors, its
+standards board of twelve individuals active in the image-management
+industry, its strategic planning and legal admissibility task forces, and
+its National Standards Council, which is comprised of the members of a
+number of organizations who vote on every AIIM standard before it is
+published. BARONAS pointed out that AIIM's liaisons deal with numerous
+other standards developers, including the optical disk community, office
+and publishing systems, image-codes-and-character set committees, and the
+National Information Standards Organization (NISO).
+
+BARONAS illustrated the procedures of TC l7l, which covers all aspects of
+image management. When AIIM's national program has conceptualized a new
+project, it is usually submitted to the international level, so that the
+member countries of TC l7l can simultaneously work on the development of
+the standard or the technical report. BARONAS also illustrated a classic
+microfilm standard, MS23, which deals with numerous imaging concepts that
+apply to electronic imaging. Originally developed in the l970s, revised
+in the l980s, and revised again in l991, this standard is scheduled for
+another revision. MS23 is an active standard whereby users may propose
+new density ranges and new methods of evaluating film images in the
+standard's revision.
+
+BARONAS detailed several electronic image-management standards, for
+instance, ANSI/AIIM MS44, a quality-control guideline for scanning 8.5"
+by 11" black-and-white office documents. This standard is used with the
+IEEE fax image--a continuous tone photographic image with gray scales,
+text, and several continuous tone pictures--and AIIM test target number
+2, a representative document used in office document management.
+
+BARONAS next outlined the four categories of EIM standardization in which
+AIIM standards are being developed: transfer and retrieval, evaluation,
+optical disc and document scanning applications, and design and
+conversion of documents. She detailed several of the main projects of
+each: 1) in the category of image transfer and retrieval, a bi-level
+image transfer format, ANSI/AIIM MS53, which is a proposed standard that
+describes a file header for image transfer between unlike systems when
+the images are compressed using G3 and G4 compression; 2) the category of
+image evaluation, which includes the AIIM-proposed TR26 tutorial on image
+resolution (this technical report will treat the differences and
+similarities between classical or photographic and electronic imaging);
+3) design and conversion, which includes a proposed technical report
+called "Forms Design Optimization for EIM" (this report considers how
+general-purpose business forms can be best designed so that scanning is
+optimized; reprographic characteristics such as type, rules, background,
+tint, and color will likewise be treated in the technical report); 4)
+disk and document scanning applications includes a project a) on planning
+platters and disk management, b) on generating an application profile for
+EIM when images are stored and distributed on CD-ROM, and c) on
+evaluating SCSI2, and how a common command set can be generated for SCSI2
+so that document scanners are more easily integrated. (ANSI/AIIM MS53
+will also apply to compressed images.)
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+BATTIN * The implications of standards for preservation * A major
+obstacle to successful cooperation * A hindrance to access in the digital
+environment * Standards a double-edged sword for those concerned with the
+preservation of the human record * Near-term prognosis for reliable
+archival standards * Preservation concerns for electronic media * Need
+for reconceptualizing our preservation principles * Standards in the real
+world and the politics of reproduction * Need to redefine the concept of
+archival and to begin to think in terms of life cycles * Cooperation and
+the La Guardia Eight * Concerns generated by discussions on the problems
+of preserving text and image * General principles to be adopted in a
+world without standards *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Patricia BATTIN, president, the Commission on Preservation and Access
+(CPA), addressed the implications of standards for preservation. She
+listed several areas where the library profession and the analog world of
+the printed book had made enormous contributions over the past hundred
+years--for example, in bibliographic formats, binding standards, and, most
+important, in determining what constitutes longevity or archival quality.
+
+Although standards have lightened the preservation burden through the
+development of national and international collaborative programs,
+nevertheless, a pervasive mistrust of other people's standards remains a
+major obstacle to successful cooperation, BATTIN said.
+
+The zeal to achieve perfection, regardless of the cost, has hindered
+rather than facilitated access in some instances, and in the digital
+environment, where no real standards exist, has brought an ironically
+just reward.
+
+BATTIN argued that standards are a double-edged sword for those concerned
+with the preservation of the human record, that is, the provision of
+access to recorded knowledge in a multitude of media as far into the
+future as possible. Standards are essential to facilitate
+interconnectivity and access, but, BATTIN said, as LYNCH pointed out
+yesterday, if set too soon they can hinder creativity, expansion of
+capability, and the broadening of access. The characteristics of
+standards for digital imagery differ radically from those for analog
+imagery. And the nature of digital technology implies continuing
+volatility and change. To reiterate, precipitous standard-setting can
+inhibit creativity, but delayed standard-setting results in chaos.
+
+Since in BATTIN'S opinion the near-term prognosis for reliable archival
+standards, as defined by librarians in the analog world, is poor, two
+alternatives remain: standing pat with the old technology, or
+reconceptualizing.
+
+Preservation concerns for electronic media fall into two general domains.
+One is the continuing assurance of access to knowledge originally
+generated, stored, disseminated, and used in electronic form. This
+domain contains several subdivisions, including 1) the closed,
+proprietary systems discussed the previous day, bundled information such
+as electronic journals and government agency records, and electronically
+produced or captured raw data; and 2) the application of digital
+technologies to the reformatting of materials originally published on a
+deteriorating analog medium such as acid paper or videotape.
+
+The preservation of electronic media requires a reconceptualizing of our
+preservation principles during a volatile, standardless transition which
+may last far longer than any of us envision today. BATTIN urged the
+necessity of shifting focus from assessing, measuring, and setting
+standards for the permanence of the medium to the concept of managing
+continuing access to information stored on a variety of media and
+requiring a variety of ever-changing hardware and software for access--a
+fundamental shift for the library profession.
+
+BATTIN offered a primer on how to move forward with reasonable confidence
+in a world without standards. Her comments fell roughly into two sections:
+1) standards in the real world and 2) the politics of reproduction.
+
+In regard to real-world standards, BATTIN argued the need to redefine the
+concept of archive and to begin to think in terms of life cycles. In
+the past, the naive assumption that paper would last forever produced a
+cavalier attitude toward life cycles. The transient nature of the
+electronic media has compelled people to recognize and accept upfront the
+concept of life cycles in place of permanency.
+
+Digital standards have to be developed and set in a cooperative context
+to ensure efficient exchange of information. Moreover, during this
+transition period, greater flexibility concerning how concepts such as
+backup copies and archival copies in the CXP are defined is necessary,
+or the opportunity to move forward will be lost.
+
+In terms of cooperation, particularly in the university setting, BATTIN
+also argued the need to avoid going off in a hundred different
+directions. The CPA has catalyzed a small group of universities called
+the La Guardia Eight--because La Guardia Airport is where meetings take
+place--Harvard, Yale, Cornell, Princeton, Penn State, Tennessee,
+Stanford, and USC, to develop a digital preservation consortium to look
+at all these issues and develop de facto standards as we move along,
+instead of waiting for something that is officially blessed. Continuing
+to apply analog values and definitions of standards to the digital
+environment, BATTIN said, will effectively lead to forfeiture of the
+benefits of digital technology to research and scholarship.
+
+Under the second rubric, the politics of reproduction, BATTIN reiterated
+an oft-made argument concerning the electronic library, namely, that it
+is more difficult to transform than to create, and nowhere is that belief
+expressed more dramatically than in the conversion of brittle books to
+new media. Preserving information published in electronic media involves
+making sure the information remains accessible and that digital
+information is not lost through reproduction. In the analog world of
+photocopies and microfilm, the issue of fidelity to the original becomes
+paramount, as do issues of "Whose fidelity?" and "Whose original?"
+
+BATTIN elaborated these arguments with a few examples from a recent study
+conducted by the CPA on the problems of preserving text and image.
+Discussions with scholars, librarians, and curators in a variety of
+disciplines dependent on text and image generated a variety of concerns,
+for example: 1) Copy what is, not what the technology is capable of.
+This is very important for the history of ideas. Scholars wish to know
+what the author saw and worked from. And make available at the
+workstation the opportunity to erase all the defects and enhance the
+presentation. 2) The fidelity of reproduction--what is good enough, what
+can we afford, and the difference it makes--issues of subjective versus
+objective resolution. 3) The differences between primary and secondary
+users. Restricting the definition of primary user to the one in whose
+discipline the material has been published runs one headlong into the
+reality that these printed books have had a host of other users from a
+host of other disciplines, who not only were looking for very different
+things, but who also shared values very different from those of the
+primary user. 4) The relationship of the standard of reproduction to new
+capabilities of scholarship--the browsing standard versus an archival
+standard. How good must the archival standard be? Can a distinction be
+drawn between potential users in setting standards for reproduction?
+Archival storage, use copies, browsing copies--ought an attempt to set
+standards even be made? 5) Finally, costs. How much are we prepared to
+pay to capture absolute fidelity? What are the trade-offs between vastly
+enhanced access, degrees of fidelity, and costs?
+
+These standards, BATTIN concluded, serve to complicate further the
+reproduction process, and add to the long list of technical standards
+that are necessary to ensure widespread access. Ways to articulate and
+analyze the costs that are attached to the different levels of standards
+must be found.
+
+Given the chaos concerning standards, which promises to linger for the
+foreseeable future, BATTIN urged adoption of the following general
+principles:
+
+ * Strive to understand the changing information requirements of
+ scholarly disciplines as more and more technology is integrated into
+ the process of research and scholarly communication in order to meet
+ future scholarly needs, not to build for the past. Capture
+ deteriorating information at the highest affordable resolution, even
+ though the dissemination and display technologies will lag.
+
+ * Develop cooperative mechanisms to foster agreement on protocols
+ for document structure and other interchange mechanisms necessary
+ for widespread dissemination and use before official standards are
+ set.
+
+ * Accept that, in a transition period, de facto standards will have
+ to be developed.
+
+ * Capture information in a way that keeps all options open and
+ provides for total convertibility: OCR, scanning of microfilm,
+ producing microfilm from scanned documents, etc.
+
+ * Work closely with the generators of information and the builders
+ of networks and databases to ensure that continuing accessibility is
+ a primary concern from the beginning.
+
+ * Piggyback on standards under development for the broad market, and
+ avoid library-specific standards; work with the vendors, in order to
+ take advantage of that which is being standardized for the rest of
+ the world.
+
+ * Concentrate efforts on managing permanence in the digital world,
+ rather than perfecting the longevity of a particular medium.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Additional comments on TIFF *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+During the brief discussion period that followed BATTIN's presentation,
+BARONAS explained that TIFF was not developed in collaboration with or
+under the auspices of AIIM. TIFF is a company product, not a standard,
+is owned by two corporations, and is always changing. BARONAS also
+observed that ANSI/AIIM MS53, a bi-level image file transfer format that
+allows unlike systems to exchange images, is compatible with TIFF as well
+as with DEC's architecture and IBM's MODCA/IOCA.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+HOOTON * Several questions to be considered in discussing text conversion
+*
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+HOOTON introduced the final topic, text conversion, by noting that it is
+becoming an increasingly important part of the imaging business. Many
+people now realize that it enhances their system to be able to have more
+and more character data as part of their imaging system. Re the issue of
+OCR versus rekeying, HOOTON posed several questions: How does one get
+text into computer-readable form? Does one use automated processes?
+Does one attempt to eliminate the use of operators where possible?
+Standards for accuracy, he said, are extremely important: it makes a
+major difference in cost and time whether one sets as a standard 98.5
+percent acceptance or 99.5 percent. He mentioned outsourcing as a
+possibility for converting text. Finally, what one does with the image
+to prepare it for the recognition process is also important, he said,
+because such preparation changes how recognition is viewed, as well as
+facilitates recognition itself.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+LESK * Roles of participants in CORE * Data flow * The scanning process *
+The image interface * Results of experiments involving the use of
+electronic resources and traditional paper copies * Testing the issue of
+serendipity * Conclusions *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Michael LESK, executive director, Computer Science Research, Bell
+Communications Research, Inc. (Bellcore), discussed the Chemical Online
+Retrieval Experiment (CORE), a cooperative project involving Cornell
+University, OCLC, Bellcore, and the American Chemical Society (ACS).
+
+LESK spoke on 1) how the scanning was performed, including the unusual
+feature of page segmentation, and 2) the use made of the text and the
+image in experiments.
+
+Working with the chemistry journals (because ACS has been saving its
+typesetting tapes since the mid-1970s and thus has a significant back-run
+of the most important chemistry journals in the United States), CORE is
+attempting to create an automated chemical library. Approximately a
+quarter of the pages by square inch are made up of images of
+quasi-pictorial material; dealing with the graphic components of the
+pages is extremely important. LESK described the roles of participants
+in CORE: 1) ACS provides copyright permission, journals on paper,
+journals on microfilm, and some of the definitions of the files; 2) at
+Bellcore, LESK chiefly performs the data preparation, while Dennis Egan
+performs experiments on the users of chemical abstracts, and supplies the
+indexing and numerous magnetic tapes; 3) Cornell provides the site of the
+experiment; 4) OCLC develops retrieval software and other user interfaces.
+Various manufacturers and publishers have furnished other help.
+
+Concerning data flow, Bellcore receives microfilm and paper from ACS; the
+microfilm is scanned by outside vendors, while the paper is scanned
+inhouse on an Improvision scanner, twenty pages per minute at 300 dpi,
+which provides sufficient quality for all practical uses. LESK would
+prefer to have more gray level, because one of the ACS journals prints on
+some colored pages, which creates a problem.
+
+Bellcore performs all this scanning, creates a page-image file, and also
+selects from the pages the graphics, to mix with the text file (which is
+discussed later in the Workshop). The user is always searching the ASCII
+file, but she or he may see a display based on the ASCII or a display
+based on the images.
+
+LESK illustrated how the program performs page analysis, and the image
+interface. (The user types several words, is presented with a list--
+usually of the titles of articles contained in an issue--that derives
+from the ASCII, clicks on an icon and receives an image that mirrors an
+ACS page.) LESK also illustrated an alternative interface, based on text
+on the ASCII, the so-called SuperBook interface from Bellcore.
+
+LESK next presented the results of an experiment conducted by Dennis Egan
+and involving thirty-six students at Cornell, one third of them
+undergraduate chemistry majors, one third senior undergraduate chemistry
+majors, and one third graduate chemistry students. A third of them
+received the paper journals, the traditional paper copies and chemical
+abstracts on paper. A third received image displays of the pictures of
+the pages, and a third received the text display with pop-up graphics.
+
+The students were given several questions made up by some chemistry
+professors. The questions fell into five classes, ranging from very easy
+to very difficult, and included questions designed to simulate browsing
+as well as a traditional information retrieval-type task.
+
+LESK furnished the following results. In the straightforward question
+search--the question being, what is the phosphorus oxygen bond distance
+and hydroxy phosphate?--the students were told that they could take
+fifteen minutes and, then, if they wished, give up. The students with
+paper took more than fifteen minutes on average, and yet most of them
+gave up. The students with either electronic format, text or image,
+received good scores in reasonable time, hardly ever had to give up, and
+usually found the right answer.
+
+In the browsing study, the students were given a list of eight topics,
+told to imagine that an issue of the Journal of the American Chemical
+Society had just appeared on their desks, and were also told to flip
+through it and to find topics mentioned in the issue. The average scores
+were about the same. (The students were told to answer yes or no about
+whether or not particular topics appeared.) The errors, however, were
+quite different. The students with paper rarely said that something
+appeared when it had not. But they often failed to find something
+actually mentioned in the issue. The computer people found numerous
+things, but they also frequently said that a topic was mentioned when it
+was not. (The reason, of course, was that they were performing word
+searches. They were finding that words were mentioned and they were
+concluding that they had accomplished their task.)
+
+This question also contained a trick to test the issue of serendipity.
+The students were given another list of eight topics and instructed,
+without taking a second look at the journal, to recall how many of this
+new list of eight topics were in this particular issue. This was an
+attempt to see if they performed better at remembering what they were not
+looking for. They all performed about the same, paper or electronics,
+about 62 percent accurate. In short, LESK said, people were not very
+good when it came to serendipity, but they were no worse at it with
+computers than they were with paper.
+
+(LESK gave a parenthetical illustration of the learning curve of students
+who used SuperBook.)
+
+The students using the electronic systems started off worse than the ones
+using print, but by the third of the three sessions in the series had
+caught up to print. As one might expect, electronics provide a much
+better means of finding what one wants to read; reading speeds, once the
+object of the search has been found, are about the same.
+
+Almost none of the students could perform the hard task--the analogous
+transformation. (It would require the expertise of organic chemists to
+complete.) But an interesting result was that the students using the text
+search performed terribly, while those using the image system did best.
+That the text search system is driven by text offers the explanation.
+Everything is focused on the text; to see the pictures, one must press
+on an icon. Many students found the right article containing the answer
+to the question, but they did not click on the icon to bring up the right
+figure and see it. They did not know that they had found the right place,
+and thus got it wrong.
+
+The short answer demonstrated by this experiment was that in the event
+one does not know what to read, one needs the electronic systems; the
+electronic systems hold no advantage at the moment if one knows what to
+read, but neither do they impose a penalty.
+
+LESK concluded by commenting that, on one hand, the image system was easy
+to use. On the other hand, the text display system, which represented
+twenty man-years of work in programming and polishing, was not winning,
+because the text was not being read, just searched. The much easier
+system is highly competitive as well as remarkably effective for the
+actual chemists.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ERWAY * Most challenging aspect of working on AM * Assumptions guiding
+AM's approach * Testing different types of service bureaus * AM's
+requirement for 99.95 percent accuracy * Requirements for text-coding *
+Additional factors influencing AM's approach to coding * Results of AM's
+experience with rekeying * Other problems in dealing with service bureaus
+* Quality control the most time-consuming aspect of contracting out
+conversion * Long-term outlook uncertain *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+To Ricky ERWAY, associate coordinator, American Memory, Library of
+Congress, the constant variety of conversion projects taking place
+simultaneously represented perhaps the most challenging aspect of working
+on AM. Thus, the challenge was not to find a solution for text
+conversion but a tool kit of solutions to apply to LC's varied
+collections that need to be converted. ERWAY limited her remarks to the
+process of converting text to machine-readable form, and the variety of
+LC's text collections, for example, bound volumes, microfilm, and
+handwritten manuscripts.
+
+Two assumptions have guided AM's approach, ERWAY said: 1) A desire not
+to perform the conversion inhouse. Because of the variety of formats and
+types of texts, to capitalize the equipment and have the talents and
+skills to operate them at LC would be extremely expensive. Further, the
+natural inclination to upgrade to newer and better equipment each year
+made it reasonable for AM to focus on what it did best and seek external
+conversion services. Using service bureaus also allowed AM to have
+several types of operations take place at the same time. 2) AM was not a
+technology project, but an effort to improve access to library
+collections. Hence, whether text was converted using OCR or rekeying
+mattered little to AM. What mattered were cost and accuracy of results.
+
+AM considered different types of service bureaus and selected three to
+perform several small tests in order to acquire a sense of the field.
+The sample collections with which they worked included handwritten
+correspondence, typewritten manuscripts from the 1940s, and
+eighteenth-century printed broadsides on microfilm. On none of these
+samples was OCR performed; they were all rekeyed. AM had several special
+requirements for the three service bureaus it had engaged. For instance,
+any errors in the original text were to be retained. Working from bound
+volumes or anything that could not be sheet-fed also constituted a factor
+eliminating companies that would have performed OCR.
+
+AM requires 99.95 percent accuracy, which, though it sounds high, often
+means one or two errors per page. The initial batch of test samples
+contained several handwritten materials for which AM did not require
+text-coding. The results, ERWAY reported, were in all cases fairly
+comparable: for the most part, all three service bureaus achieved 99.95
+percent accuracy. AM was satisfied with the work but surprised at the cost.
+
+As AM began converting whole collections, it retained the requirement for
+99.95 percent accuracy and added requirements for text-coding. AM needed
+to begin performing work more than three years ago before LC requirements
+for SGML applications had been established. Since AM's goal was simply
+to retain any of the intellectual content represented by the formatting
+of the document (which would be lost if one performed a straight ASCII
+conversion), AM used "SGML-like" codes. These codes resembled SGML tags
+but were used without the benefit of document-type definitions. AM found
+that many service bureaus were not yet SGML-proficient.
+
+Additional factors influencing the approach AM took with respect to
+coding included: 1) the inability of any known microcomputer-based
+user-retrieval software to take advantage of SGML coding; and 2) the
+multiple inconsistencies in format of the older documents, which
+confirmed AM in its desire not to attempt to force the different formats
+to conform to a single document-type definition (DTD) and thus create the
+need for a separate DTD for each document.
+
+The five text collections that AM has converted or is in the process of
+converting include a collection of eighteenth-century broadsides, a
+collection of pamphlets, two typescript document collections, and a
+collection of 150 books.
+
+ERWAY next reviewed the results of AM's experience with rekeying, noting
+again that because the bulk of AM's materials are historical, the quality
+of the text often does not lend itself to OCR. While non-English
+speakers are less likely to guess or elaborate or correct typos in the
+original text, they are also less able to infer what we would; they also
+are nearly incapable of converting handwritten text. Another
+disadvantage of working with overseas keyers is that they are much less
+likely to telephone with questions, especially on the coding, with the
+result that they develop their own rules as they encounter new
+situations.
+
+Government contracting procedures and time frames posed a major challenge
+to performing the conversion. Many service bureaus are not accustomed to
+retaining the image, even if they perform OCR. Thus, questions of image
+format and storage media were somewhat novel to many of them. ERWAY also
+remarked other problems in dealing with service bureaus, for example,
+their inability to perform text conversion from the kind of microfilm
+that LC uses for preservation purposes.
+
+But quality control, in ERWAY's experience, was the most time-consuming
+aspect of contracting out conversion. AM has been attempting to perform
+a 10-percent quality review, looking at either every tenth document or
+every tenth page to make certain that the service bureaus are maintaining
+99.95 percent accuracy. But even if they are complying with the
+requirement for accuracy, finding errors produces a desire to correct
+them and, in turn, to clean up the whole collection, which defeats the
+purpose to some extent. Even a double entry requires a
+character-by-character comparison to the original to meet the accuracy
+requirement. LC is not accustomed to publish imperfect texts, which
+makes attempting to deal with the industry standard an emotionally
+fraught issue for AM. As was mentioned in the previous day's discussion,
+going from 99.95 to 99.99 percent accuracy usually doubles costs and
+means a third keying or another complete run-through of the text.
+
+Although AM has learned much from its experiences with various collections
+and various service bureaus, ERWAY concluded pessimistically that no
+breakthrough has been achieved. Incremental improvements have occurred
+in some of the OCR technology, some of the processes, and some of the
+standards acceptances, which, though they may lead to somewhat lower costs,
+do not offer much encouragement to many people who are anxiously awaiting
+the day that the entire contents of LC are available on-line.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ZIDAR * Several answers to why one attempts to perform full-text
+conversion * Per page cost of performing OCR * Typical problems
+encountered during editing * Editing poor copy OCR vs. rekeying *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Judith ZIDAR, coordinator, National Agricultural Text Digitizing Program
+(NATDP), National Agricultural Library (NAL), offered several answers to
+the question of why one attempts to perform full-text conversion: 1)
+Text in an image can be read by a human but not by a computer, so of
+course it is not searchable and there is not much one can do with it. 2)
+Some material simply requires word-level access. For instance, the legal
+profession insists on full-text access to its material; with taxonomic or
+geographic material, which entails numerous names, one virtually requires
+word-level access. 3) Full text permits rapid browsing and searching,
+something that cannot be achieved in an image with today's technology.
+4) Text stored as ASCII and delivered in ASCII is standardized and highly
+portable. 5) People just want full-text searching, even those who do not
+know how to do it. NAL, for the most part, is performing OCR at an
+actual cost per average-size page of approximately $7. NAL scans the
+page to create the electronic image and passes it through the OCR device.
+
+ZIDAR next rehearsed several typical problems encountered during editing.
+Praising the celerity of her student workers, ZIDAR observed that editing
+requires approximately five to ten minutes per page, assuming that there
+are no large tables to audit. Confusion among the three characters I, 1,
+and l, constitutes perhaps the most common problem encountered. Zeroes
+and O's also are frequently confused. Double M's create a particular
+problem, even on clean pages. They are so wide in most fonts that they
+touch, and the system simply cannot tell where one letter ends and the
+other begins. Complex page formats occasionally fail to columnate
+properly, which entails rescanning as though one were working with a
+single column, entering the ASCII, and decolumnating for better
+searching. With proportionally spaced text, OCR can have difficulty
+discerning what is a space and what are merely spaces between letters, as
+opposed to spaces between words, and therefore will merge text or break
+up words where it should not.
+
+ZIDAR said that it can often take longer to edit a poor-copy OCR than to
+key it from scratch. NAL has also experimented with partial editing of
+text, whereby project workers go into and clean up the format, removing
+stray characters but not running a spell-check. NAL corrects typos in
+the title and authors' names, which provides a foothold for searching and
+browsing. Even extremely poor-quality OCR (e.g., 60-percent accuracy)
+can still be searched, because numerous words are correct, while the
+important words are probably repeated often enough that they are likely
+to be found correct somewhere. Librarians, however, cannot tolerate this
+situation, though end users seem more willing to use this text for
+searching, provided that NAL indicates that it is unedited. ZIDAR
+concluded that rekeying of text may be the best route to take, in spite
+of numerous problems with quality control and cost.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Modifying an image before performing OCR * NAL's costs per
+page *AM's costs per page and experience with Federal Prison Industries *
+Elements comprising NATDP's costs per page * OCR and structured markup *
+Distinction between the structure of a document and its representation
+when put on the screen or printed *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+HOOTON prefaced the lengthy discussion that followed with several
+comments about modifying an image before one reaches the point of
+performing OCR. For example, in regard to an application containing a
+significant amount of redundant data, such as form-type data, numerous
+companies today are working on various kinds of form renewal, prior to
+going through a recognition process, by using dropout colors. Thus,
+acquiring access to form design or using electronic means are worth
+considering. HOOTON also noted that conversion usually makes or breaks
+one's imaging system. It is extremely important, extremely costly in
+terms of either capital investment or service, and determines the quality
+of the remainder of one's system, because it determines the character of
+the raw material used by the system.
+
+Concerning the four projects undertaken by NAL, two inside and two
+performed by outside contractors, ZIDAR revealed that an in-house service
+bureau executed the first at a cost between $8 and $10 per page for
+everything, including building of the database. The project undertaken
+by the Consultative Group on International Agricultural Research (CGIAR)
+cost approximately $10 per page for the conversion, plus some expenses
+for the software and building of the database. The Acid Rain Project--a
+two-disk set produced by the University of Vermont, consisting of
+Canadian publications on acid rain--cost $6.70 per page for everything,
+including keying of the text, which was double keyed, scanning of the
+images, and building of the database. The in-house project offered
+considerable ease of convenience and greater control of the process. On
+the other hand, the service bureaus know their job and perform it
+expeditiously, because they have more people.
+
+As a useful comparison, ERWAY revealed AM's costs as follows: $0.75
+cents to $0.85 cents per thousand characters, with an average page
+containing 2,700 characters. Requirements for coding and imaging
+increase the costs. Thus, conversion of the text, including the coding,
+costs approximately $3 per page. (This figure does not include the
+imaging and database-building included in the NAL costs.) AM also
+enjoyed a happy experience with Federal Prison Industries, which
+precluded the necessity of going through the request-for-proposal process
+to award a contract, because it is another government agency. The
+prisoners performed AM's rekeying just as well as other service bureaus
+and proved handy as well. AM shipped them the books, which they would
+photocopy on a book-edge scanner. They would perform the markup on
+photocopies, return the books as soon as they were done with them,
+perform the keying, and return the material to AM on WORM disks.
+
+ZIDAR detailed the elements that constitute the previously noted cost of
+approximately $7 per page. Most significant is the editing, correction
+of errors, and spell-checkings, which though they may sound easy to
+perform require, in fact, a great deal of time. Reformatting text also
+takes a while, but a significant amount of NAL's expenses are for equipment,
+which was extremely expensive when purchased because it was one of the few
+systems on the market. The costs of equipment are being amortized over
+five years but are still quite high, nearly $2,000 per month.
+
+HOCKEY raised a general question concerning OCR and the amount of editing
+required (substantial in her experience) to generate the kind of
+structured markup necessary for manipulating the text on the computer or
+loading it into any retrieval system. She wondered if the speakers could
+extend the previous question about the cost-benefit of adding or exerting
+structured markup. ERWAY noted that several OCR systems retain italics,
+bolding, and other spatial formatting. While the material may not be in
+the format desired, these systems possess the ability to remove the
+original materials quickly from the hands of the people performing the
+conversion, as well as to retain that information so that users can work
+with it. HOCKEY rejoined that the current thinking on markup is that one
+should not say that something is italic or bold so much as why it is that
+way. To be sure, one needs to know that something was italicized, but
+how can one get from one to the other? One can map from the structure to
+the typographic representation.
+
+FLEISCHHAUER suggested that, given the 100 million items the Library
+holds, it may not be possible for LC to do more than report that a thing
+was in italics as opposed to why it was italics, although that may be
+desirable in some contexts. Promising to talk a bit during the afternoon
+session about several experiments OCLC performed on automatic recognition
+of document elements, and which they hoped to extend, WEIBEL said that in
+fact one can recognize the major elements of a document with a fairly
+high degree of reliability, at least as good as OCR. STEVENS drew a
+useful distinction between standard, generalized markup (i.e., defining
+for a document-type definition the structure of the document), and what
+he termed a style sheet, which had to do with italics, bolding, and other
+forms of emphasis. Thus, two different components are at work, one being
+the structure of the document itself (its logic), and the other being its
+representation when it is put on the screen or printed.
+
+ ******
+
+SESSION V. APPROACHES TO PREPARING ELECTRONIC TEXTS
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+HOCKEY * Text in ASCII and the representation of electronic text versus
+an image * The need to look at ways of using markup to assist retrieval *
+The need for an encoding format that will be reusable and multifunctional
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Susan HOCKEY, director, Center for Electronic Texts in the Humanities
+(CETH), Rutgers and Princeton Universities, announced that one talk
+(WEIBEL's) was moved into this session from the morning and that David
+Packard was unable to attend. The session would attempt to focus more on
+what one can do with a text in ASCII and the representation of electronic
+text rather than just an image, what one can do with a computer that
+cannot be done with a book or an image. It would be argued that one can
+do much more than just read a text, and from that starting point one can
+use markup and methods of preparing the text to take full advantage of
+the capability of the computer. That would lead to a discussion of what
+the European Community calls REUSABILITY, what may better be termed
+DURABILITY, that is, how to prepare or make a text that will last a long
+time and that can be used for as many applications as possible, which
+would lead to issues of improving intellectual access.
+
+HOCKEY urged the need to look at ways of using markup to facilitate retrieval,
+not just for referencing or to help locate an item that is retrieved, but also to put markup tags in
+a text to help retrieve the thing sought either with linguistic tagging or
+interpretation. HOCKEY also argued that little advancement had occurred in
+the software tools currently available for retrieving and searching text.
+She pressed the desideratum of going beyond Boolean searches and performing
+more sophisticated searching, which the insertion of more markup in the text
+would facilitate. Thinking about electronic texts as opposed to images means
+considering material that will never appear in print form, or print will not
+be its primary form, that is, material which only appears in electronic form.
+HOCKEY alluded to the history and the need for markup and tagging and
+electronic text, which was developed through the use of computers in the
+humanities; as MICHELSON had observed, Father Busa had started in 1949
+to prepare the first-ever text on the computer.
+
+HOCKEY remarked several large projects, particularly in Europe, for the
+compilation of dictionaries, language studies, and language analysis, in
+which people have built up archives of text and have begun to recognize
+the need for an encoding format that will be reusable and multifunctional,
+that can be used not just to print the text, which may be assumed to be a
+byproduct of what one wants to do, but to structure it inside the computer
+so that it can be searched, built into a Hypertext system, etc.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+WEIBEL * OCLC's approach to preparing electronic text: retroconversion,
+keying of texts, more automated ways of developing data * Project ADAPT
+and the CORE Project * Intelligent character recognition does not exist *
+Advantages of SGML * Data should be free of procedural markup;
+descriptive markup strongly advocated * OCLC's interface illustrated *
+Storage requirements and costs for putting a lot of information on line *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Stuart WEIBEL, senior research scientist, Online Computer Library Center,
+Inc. (OCLC), described OCLC's approach to preparing electronic text. He
+argued that the electronic world into which we are moving must
+accommodate not only the future but the past as well, and to some degree
+even the present. Thus, starting out at one end with retroconversion and
+keying of texts, one would like to move toward much more automated ways
+of developing data.
+
+For example, Project ADAPT had to do with automatically converting
+document images into a structured document database with OCR text as
+indexing and also a little bit of automatic formatting and tagging of
+that text. The CORE project hosted by Cornell University, Bellcore,
+OCLC, the American Chemical Society, and Chemical Abstracts, constitutes
+WEIBEL's principal concern at the moment. This project is an example of
+converting text for which one already has a machine-readable version into
+a format more suitable for electronic delivery and database searching.
+(Since Michael LESK had previously described CORE, WEIBEL would say
+little concerning it.) Borrowing a chemical phrase, de novo synthesis,
+WEIBEL cited the Online Journal of Current Clinical Trials as an example
+of de novo electronic publishing, that is, a form in which the primary
+form of the information is electronic.
+
+Project ADAPT, then, which OCLC completed a couple of years ago and in
+fact is about to resume, is a model in which one takes page images either
+in paper or microfilm and converts them automatically to a searchable
+electronic database, either on-line or local. The operating assumption
+is that accepting some blemishes in the data, especially for
+retroconversion of materials, will make it possible to accomplish more.
+Not enough money is available to support perfect conversion.
+
+WEIBEL related several steps taken to perform image preprocessing
+(processing on the image before performing optical character
+recognition), as well as image postprocessing. He denied the existence
+of intelligent character recognition and asserted that what is wanted is
+page recognition, which is a long way off. OCLC has experimented with
+merging of multiple optical character recognition systems that will
+reduce errors from an unacceptable rate of 5 characters out of every
+l,000 to an unacceptable rate of 2 characters out of every l,000, but it
+is not good enough. It will never be perfect.
+
+Concerning the CORE Project, WEIBEL observed that Bellcore is taking the
+topography files, extracting the page images, and converting those
+topography files to SGML markup. LESK hands that data off to OCLC, which
+builds that data into a Newton database, the same system that underlies
+the on-line system in virtually all of the reference products at OCLC.
+The long-term goal is to make the systems interoperable so that not just
+Bellcore's system and OCLC's system can access this data, but other
+systems can as well, and the key to that is the Z39.50 common command
+language and the full-text extension. Z39.50 is fine for MARC records,
+but is not enough to do it for full text (that is, make full texts
+interoperable).
+
+WEIBEL next outlined the critical role of SGML for a variety of purposes,
+for example, as noted by HOCKEY, in the world of extremely large
+databases, using highly structured data to perform field searches.
+WEIBEL argued that by building the structure of the data in (i.e., the
+structure of the data originally on a printed page), it becomes easy to
+look at a journal article even if one cannot read the characters and know
+where the title or author is, or what the sections of that document would be.
+OCLC wants to make that structure explicit in the database, because it will
+be important for retrieval purposes.
+
+The second big advantage of SGML is that it gives one the ability to
+build structure into the database that can be used for display purposes
+without contaminating the data with instructions about how to format
+things. The distinction lies between procedural markup, which tells one
+where to put dots on the page, and descriptive markup, which describes
+the elements of a document.
+
+WEIBEL believes that there should be no procedural markup in the data at
+all, that the data should be completely unsullied by information about
+italics or boldness. That should be left up to the display device,
+whether that display device is a page printer or a screen display device.
+By keeping one's database free of that kind of contamination, one can
+make decisions down the road, for example, reorganize the data in ways
+that are not cramped by built-in notions of what should be italic and
+what should be bold. WEIBEL strongly advocated descriptive markup. As
+an example, he illustrated the index structure in the CORE data. With
+subsequent illustrated examples of markup, WEIBEL acknowledged the common
+complaint that SGML is hard to read in its native form, although markup
+decreases considerably once one gets into the body. Without the markup,
+however, one would not have the structure in the data. One can pass
+markup through a LaTeX processor and convert it relatively easily to a
+printed version of the document.
+
+WEIBEL next illustrated an extremely cluttered screen dump of OCLC's
+system, in order to show as much as possible the inherent capability on
+the screen. (He noted parenthetically that he had become a supporter of
+X-Windows as a result of the progress of the CORE Project.) WEIBEL also
+illustrated the two major parts of the interface: l) a control box that
+allows one to generate lists of items, which resembles a small table of
+contents based on key words one wishes to search, and 2) a document
+viewer, which is a separate process in and of itself. He demonstrated
+how to follow links through the electronic database simply by selecting
+the appropriate button and bringing them up. He also noted problems that
+remain to be accommodated in the interface (e.g., as pointed out by LESK,
+what happens when users do not click on the icon for the figure).
+
+Given the constraints of time, WEIBEL omitted a large number of ancillary
+items in order to say a few words concerning storage requirements and
+what will be required to put a lot of things on line. Since it is
+extremely expensive to reconvert all of this data, especially if it is
+just in paper form (and even if it is in electronic form in typesetting
+tapes), he advocated building journals electronically from the start. In
+that case, if one only has text graphics and indexing (which is all that
+one needs with de novo electronic publishing, because there is no need to
+go back and look at bit-maps of pages), one can get 10,000 journals of
+full text, or almost 6 million pages per year. These pages can be put in
+approximately 135 gigabytes of storage, which is not all that much,
+WEIBEL said. For twenty years, something less than three terabytes would
+be required. WEIBEL calculated the costs of storing this information as
+follows: If a gigabyte costs approximately $1,000, then a terabyte costs
+approximately $1 million to buy in terms of hardware. One also needs a
+building to put it in and a staff like OCLC to handle that information.
+So, to support a terabyte, multiply by five, which gives $5 million per
+year for a supported terabyte of data.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Tapes saved by ACS are the typography files originally
+supporting publication of the journal * Cost of building tagged text into
+the database *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+During the question-and-answer period that followed WEIBEL's
+presentation, these clarifications emerged. The tapes saved by the
+American Chemical Society are the typography files that originally
+supported the publication of the journal. Although they are not tagged
+in SGML, they are tagged in very fine detail. Every single sentence is
+marked, all the registry numbers, all the publications issues, dates, and
+volumes. No cost figures on tagging material on a per-megabyte basis
+were available. Because ACS's typesetting system runs from tagged text,
+there is no extra cost per article. It was unknown what it costs ACS to
+keyboard the tagged text rather than just keyboard the text in the
+cheapest process. In other words, since one intends to publish things
+and will need to build tagged text into a typography system in any case,
+if one does that in such a way that it can drive not only typography but
+an electronic system (which is what ACS intends to do--move to SGML
+publishing), the marginal cost is zero. The marginal cost represents the
+cost of building tagged text into the database, which is small.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+SPERBERG-McQUEEN * Distinction between texts and computers * Implications
+of recognizing that all representation is encoding * Dealing with
+complicated representations of text entails the need for a grammar of
+documents * Variety of forms of formal grammars * Text as a bit-mapped
+image does not represent a serious attempt to represent text in
+electronic form * SGML, the TEI, document-type declarations, and the
+reusability and longevity of data * TEI conformance explicitly allows
+extension or modification of the TEI tag set * Administrative background
+of the TEI * Several design goals for the TEI tag set * An absolutely
+fixed requirement of the TEI Guidelines * Challenges the TEI has
+attempted to face * Good texts not beyond economic feasibility * The
+issue of reproducibility or processability * The issue of mages as
+simulacra for the text redux * One's model of text determines what one's
+software can do with a text and has economic consequences *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Prior to speaking about SGML and markup, Michael SPERBERG-McQUEEN, editor,
+Text Encoding Initiative (TEI), University of Illinois-Chicago, first drew
+a distinction between texts and computers: Texts are abstract cultural
+and linguistic objects while computers are complicated physical devices,
+he said. Abstract objects cannot be placed inside physical devices; with
+computers one can only represent text and act upon those representations.
+
+The recognition that all representation is encoding, SPERBERG-McQUEEN
+argued, leads to the recognition of two things: 1) The topic description
+for this session is slightly misleading, because there can be no discussion
+of pros and cons of text-coding unless what one means is pros and cons of
+working with text with computers. 2) No text can be represented in a
+computer without some sort of encoding; images are one way of encoding text,
+ASCII is another, SGML yet another. There is no encoding without some
+information loss, that is, there is no perfect reproduction of a text that
+allows one to do away with the original. Thus, the question becomes,
+What is the most useful representation of text for a serious work?
+This depends on what kind of serious work one is talking about.
+
+The projects demonstrated the previous day all involved highly complex
+information and fairly complex manipulation of the textual material.
+In order to use that complicated information, one has to calculate it
+slowly or manually and store the result. It needs to be stored, therefore,
+as part of one's representation of the text. Thus, one needs to store the
+structure in the text. To deal with complicated representations of text,
+one needs somehow to control the complexity of the representation of a text;
+that means one needs a way of finding out whether a document and an
+electronic representation of a document is legal or not; and that
+means one needs a grammar of documents.
+
+SPERBERG-McQUEEN discussed the variety of forms of formal grammars,
+implicit and explicit, as applied to text, and their capabilities. He
+argued that these grammars correspond to different models of text that
+different developers have. For example, one implicit model of the text
+is that there is no internal structure, but just one thing after another,
+a few characters and then perhaps a start-title command, and then a few
+more characters and an end-title command. SPERBERG-McQUEEN also
+distinguished several kinds of text that have a sort of hierarchical
+structure that is not very well defined, which, typically, corresponds
+to grammars that are not very well defined, as well as hierarchies that
+are very well defined (e.g., the Thesaurus Linguae Graecae) and extremely
+complicated things such as SGML, which handle strictly hierarchical data
+very nicely.
+
+SPERBERG-McQUEEN conceded that one other model not illustrated on his two
+displays was the model of text as a bit-mapped image, an image of a page,
+and confessed to having been converted to a limited extent by the
+Workshop to the view that electronic images constitute a promising,
+probably superior alternative to microfilming. But he was not convinced
+that electronic images represent a serious attempt to represent text in
+electronic form. Many of their problems stem from the fact that they are
+not direct attempts to represent the text but attempts to represent the
+page, thus making them representations of representations.
+
+In this situation of increasingly complicated textual information and the
+need to control that complexity in a useful way (which begs the question
+of the need for good textual grammars), one has the introduction of SGML.
+With SGML, one can develop specific document-type declarations
+for specific text types or, as with the TEI, attempts to generate
+general document-type declarations that can handle all sorts of text.
+The TEI is an attempt to develop formats for text representation that
+will ensure the kind of reusability and longevity of data discussed earlier.
+It offers a way to stay alive in the state of permanent technological
+revolution.
+
+It has been a continuing challenge in the TEI to create document grammars
+that do some work in controlling the complexity of the textual object but
+also allowing one to represent the real text that one will find.
+Fundamental to the notion of the TEI is that TEI conformance allows one
+the ability to extend or modify the TEI tag set so that it fits the text
+that one is attempting to represent.
+
+SPERBERG-McQUEEN next outlined the administrative background of the TEI.
+The TEI is an international project to develop and disseminate guidelines
+for the encoding and interchange of machine-readable text. It is
+sponsored by the Association for Computers in the Humanities, the
+Association for Computational Linguistics, and the Association for
+Literary and Linguistic Computing. Representatives of numerous other
+professional societies sit on its advisory board. The TEI has a number
+of affiliated projects that have provided assistance by testing drafts of
+the guidelines.
+
+Among the design goals for the TEI tag set, the scheme first of all must
+meet the needs of research, because the TEI came out of the research
+community, which did not feel adequately served by existing tag sets.
+The tag set must be extensive as well as compatible with existing and
+emerging standards. In 1990, version 1.0 of the Guidelines was released
+(SPERBERG-McQUEEN illustrated their contents).
+
+SPERBERG-McQUEEN noted that one problem besetting electronic text has
+been the lack of adequate internal or external documentation for many
+existing electronic texts. The TEI guidelines as currently formulated
+contain few fixed requirements, but one of them is this: There must
+always be a document header, an in-file SGML tag that provides
+1) a bibliographic description of the electronic object one is talking
+about (that is, who included it, when, what for, and under which title);
+and 2) the copy text from which it was derived, if any. If there was
+no copy text or if the copy text is unknown, then one states as much.
+Version 2.0 of the Guidelines was scheduled to be completed in fall 1992
+and a revised third version is to be presented to the TEI advisory board
+for its endorsement this coming winter. The TEI itself exists to provide
+a markup language, not a marked-up text.
+
+Among the challenges the TEI has attempted to face is the need for a
+markup language that will work for existing projects, that is, handle the
+level of markup that people are using now to tag only chapter, section,
+and paragraph divisions and not much else. At the same time, such a
+language also will be able to scale up gracefully to handle the highly
+detailed markup which many people foresee as the future destination of
+much electronic text, and which is not the future destination but the
+present home of numerous electronic texts in specialized areas.
+
+SPERBERG-McQUEEN dismissed the lowest-common-denominator approach as
+unable to support the kind of applications that draw people who have
+never been in the public library regularly before, and make them come
+back. He advocated more interesting text and more intelligent text.
+Asserting that it is not beyond economic feasibility to have good texts,
+SPERBERG-McQUEEN noted that the TEI Guidelines listing 200-odd tags
+contains tags that one is expected to enter every time the relevant
+textual feature occurs. It contains all the tags that people need now,
+and it is not expected that everyone will tag things in the same way.
+
+The question of how people will tag the text is in large part a function
+of their reaction to what SPERBERG-McQUEEN termed the issue of
+reproducibility. What one needs to be able to reproduce are the things
+one wants to work with. Perhaps a more useful concept than that of
+reproducibility or recoverability is that of processability, that is,
+what can one get from an electronic text without reading it again
+in the original. He illustrated this contention with a page from
+Jan Comenius's bilingual Introduction to Latin.
+
+SPERBERG-McQUEEN returned at length to the issue of images as simulacra
+for the text, in order to reiterate his belief that in the long run more
+than images of pages of particular editions of the text are needed,
+because just as second-generation photocopies and second-generation
+microfilm degenerate, so second-generation representations tend to
+degenerate, and one tends to overstress some relatively trivial aspects
+of the text such as its layout on the page, which is not always
+significant, despite what the text critics might say, and slight other
+pieces of information such as the very important lexical ties between the
+English and Latin versions of Comenius's bilingual text, for example.
+Moreover, in many crucial respects it is easy to fool oneself concerning
+what a scanned image of the text will accomplish. For example, in order
+to study the transmission of texts, information concerning the text
+carrier is necessary, which scanned images simply do not always handle.
+Further, even the high-quality materials being produced at Cornell use
+much of the information that one would need if studying those books as
+physical objects. It is a choice that has been made. It is an arguably
+justifiable choice, but one does not know what color those pen strokes in
+the margin are or whether there was a stain on the page, because it has
+been filtered out. One does not know whether there were rips in the page
+because they do not show up, and on a couple of the marginal marks one
+loses half of the mark because the pen is very light and the scanner
+failed to pick it up, and so what is clearly a checkmark in the margin of
+the original becomes a little scoop in the margin of the facsimile.
+Standard problems for facsimile editions, not new to electronics, but
+also true of light-lens photography, and are remarked here because it is
+important that we not fool ourselves that even if we produce a very nice
+image of this page with good contrast, we are not replacing the
+manuscript any more than microfilm has replaced the manuscript.
+
+The TEI comes from the research community, where its first allegiance
+lies, but it is not just an academic exercise. It has relevance far
+beyond those who spend all of their time studying text, because one's
+model of text determines what one's software can do with a text. Good
+models lead to good software. Bad models lead to bad software. That has
+economic consequences, and it is these economic consequences that have
+led the European Community to help support the TEI, and that will lead,
+SPERBERG-McQUEEN hoped, some software vendors to realize that if they
+provide software with a better model of the text they can make a killing.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Implications of different DTDs and tag sets * ODA versus SGML *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+During the discussion that followed, several additional points were made.
+Neither AAP (i.e., Association of American Publishers) nor CALS (i.e.,
+Computer-aided Acquisition and Logistics Support) has a document-type
+definition for ancient Greek drama, although the TEI will be able to
+handle that. Given this state of affairs and assuming that the
+technical-journal producers and the commercial vendors decide to use the
+other two types, then an institution like the Library of Congress, which
+might receive all of their publications, would have to be able to handle
+three different types of document definitions and tag sets and be able to
+distinguish among them.
+
+Office Document Architecture (ODA) has some advantages that flow from its
+tight focus on office documents and clear directions for implementation.
+Much of the ODA standard is easier to read and clearer at first reading
+than the SGML standard, which is extremely general. What that means is
+that if one wants to use graphics in TIFF and ODA, one is stuck, because
+ODA defines graphics formats while TIFF does not, whereas SGML says the
+world is not waiting for this work group to create another graphics format.
+What is needed is an ability to use whatever graphics format one wants.
+
+The TEI provides a socket that allows one to connect the SGML document to
+the graphics. The notation that the graphics are in is clearly a choice
+that one needs to make based on her or his environment, and that is one
+advantage. SGML is less megalomaniacal in attempting to define formats
+for all kinds of information, though more megalomaniacal in attempting to
+cover all sorts of documents. The other advantage is that the model of
+text represented by SGML is simply an order of magnitude richer and more
+flexible than the model of text offered by ODA. Both offer hierarchical
+structures, but SGML recognizes that the hierarchical model of the text
+that one is looking at may not have been in the minds of the designers,
+whereas ODA does not.
+
+ODA is not really aiming for the kind of document that the TEI wants to
+encompass. The TEI can handle the kind of material ODA has, as well as a
+significantly broader range of material. ODA seems to be very much
+focused on office documents, which is what it started out being called--
+office document architecture.
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+CALALUCA * Text-encoding from a publisher's perspective *
+Responsibilities of a publisher * Reproduction of Migne's Latin series
+whole and complete with SGML tags based on perceived need and expected
+use * Particular decisions arising from the general decision to produce
+and publish PLD *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+The final speaker in this session, Eric CALALUCA, vice president,
+Chadwyck-Healey, Inc., spoke from the perspective of a publisher re
+text-encoding, rather than as one qualified to discuss methods of
+encoding data, and observed that the presenters sitting in the room,
+whether they had chosen to or not, were acting as publishers: making
+choices, gathering data, gathering information, and making assessments.
+CALALUCA offered the hard-won conviction that in publishing very large
+text files (such as PLD), one cannot avoid making personal judgments of
+appropriateness and structure.
+
+In CALALUCA's view, encoding decisions stem from prior judgments. Two
+notions have become axioms for him in the consideration of future sources
+for electronic publication: 1) electronic text publishing is as personal
+as any other kind of publishing, and questions of if and how to encode
+the data are simply a consequence of that prior decision; 2) all
+personal decisions are open to criticism, which is unavoidable.
+
+CALALUCA rehearsed his role as a publisher or, better, as an intermediary
+between what is viewed as a sound idea and the people who would make use
+of it. Finding the specialist to advise in this process is the core of
+that function. The publisher must monitor and hug the fine line between
+giving users what they want and suggesting what they might need. One
+responsibility of a publisher is to represent the desires of scholars and
+research librarians as opposed to bullheadedly forcing them into areas
+they would not choose to enter.
+
+CALALUCA likened the questions being raised today about data structure
+and standards to the decisions faced by the Abbe Migne himself during
+production of the Patrologia series in the mid-nineteenth century.
+Chadwyck-Healey's decision to reproduce Migne's Latin series whole and
+complete with SGML tags was also based upon a perceived need and an
+expected use. In the same way that Migne's work came to be far more than
+a simple handbook for clerics, PLD is already far more than a database
+for theologians. It is a bedrock source for the study of Western
+civilization, CALALUCA asserted.
+
+In regard to the decision to produce and publish PLD, the editorial board
+offered direct judgments on the question of appropriateness of these
+texts for conversion, their encoding and their distribution, and
+concluded that the best possible project was one that avoided overt
+intrusions or exclusions in so important a resource. Thus, the general
+decision to transmit the original collection as clearly as possible with
+the widest possible avenues for use led to other decisions: 1) To encode
+the data or not, SGML or not, TEI or not. Again, the expected user
+community asserted the need for normative tagging structures of important
+humanities texts, and the TEI seemed the most appropriate structure for
+that purpose. Research librarians, who are trained to view the larger
+impact of electronic text sources on 80 or 90 or 100 doctoral
+disciplines, loudly approved the decision to include tagging. They see
+what is coming better than the specialist who is completely focused on
+one edition of Ambrose's De Anima, and they also understand that the
+potential uses exceed present expectations. 2) What will be tagged and
+what will not. Once again, the board realized that one must tag the
+obvious. But in no way should one attempt to identify through encoding
+schemes every single discrete area of a text that might someday be
+searched. That was another decision. Searching by a column number, an
+author, a word, a volume, permitting combination searches, and tagging
+notations seemed logical choices as core elements. 3) How does one make
+the data available? Tieing it to a CD-ROM edition creates limitations,
+but a magnetic tape file that is very large, is accompanied by the
+encoding specifications, and that allows one to make local modifications
+also allows one to incorporate any changes one may desire within the
+bounds of private research, though exporting tag files from a CD-ROM
+could serve just as well. Since no one on the board could possibly
+anticipate each and every way in which a scholar might choose to mine
+this data bank, it was decided to satisfy the basics and make some
+provisions for what might come. 4) Not to encode the database would rob
+it of the interchangeability and portability these important texts should
+accommodate. For CALALUCA, the extensive options presented by full-text
+searching require care in text selection and strongly support encoding of
+data to facilitate the widest possible search strategies. Better
+software can always be created, but summoning the resources, the people,
+and the energy to reconvert the text is another matter.
+
+PLD is being encoded, captured, and distributed, because to
+Chadwyck-Healey and the board it offers the widest possible array of
+future research applications that can be seen today. CALALUCA concluded
+by urging the encoding of all important text sources in whatever way
+seems most appropriate and durable at the time, without blanching at the
+thought that one's work may require emendation in the future. (Thus,
+Chadwyck-Healey produced a very large humanities text database before the
+final release of the TEI Guidelines.)
+
+ ******
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DISCUSSION * Creating texts with markup advocated * Trends in encoding *
+The TEI and the issue of interchangeability of standards * A
+misconception concerning the TEI * Implications for an institution like
+LC in the event that a multiplicity of DTDs develops * Producing images
+as a first step towards possible conversion to full text through
+character recognition * The AAP tag sets as a common starting point and
+the need for caution *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+HOCKEY prefaced the discussion that followed with several comments in
+favor of creating texts with markup and on trends in encoding. In the
+future, when many more texts are available for on-line searching, real
+problems in finding what is wanted will develop, if one is faced with
+millions of words of data. It therefore becomes important to consider
+putting markup in texts to help searchers home in on the actual things
+they wish to retrieve. Various approaches to refining retrieval methods
+toward this end include building on a computer version of a dictionary
+and letting the computer look up words in it to obtain more information
+about the semantic structure or semantic field of a word, its grammatical
+structure, and syntactic structure.
+
+HOCKEY commented on the present keen interest in the encoding world
+in creating: 1) machine-readable versions of dictionaries that can be
+initially tagged in SGML, which gives a structure to the dictionary entry;
+these entries can then be converted into a more rigid or otherwise
+different database structure inside the computer, which can be treated as
+a dynamic tool for searching mechanisms; 2) large bodies of text to study
+the language. In order to incorporate more sophisticated mechanisms,
+more about how words behave needs to be known, which can be learned in
+part from information in dictionaries. However, the last ten years have
+seen much interest in studying the structure of printed dictionaries
+converted into computer-readable form. The information one derives about
+many words from those is only partial, one or two definitions of the
+common or the usual meaning of a word, and then numerous definitions of
+unusual usages. If the computer is using a dictionary to help retrieve
+words in a text, it needs much more information about the common usages,
+because those are the ones that occur over and over again. Hence the
+current interest in developing large bodies of text in computer-readable
+form in order to study the language. Several projects are engaged in
+compiling, for example, 100 million words. HOCKEY described one with
+which she was associated briefly at Oxford University involving
+compilation of 100 million words of British English: about 10 percent of
+that will contain detailed linguistic tagging encoded in SGML; it will
+have word class taggings, with words identified as nouns, verbs,
+adjectives, or other parts of speech. This tagging can then be used by
+programs which will begin to learn a bit more about the structure of the
+language, and then, can go to tag more text.
+
+HOCKEY said that the more that is tagged accurately, the more one can
+refine the tagging process and thus the bigger body of text one can build
+up with linguistic tagging incorporated into it. Hence, the more tagging
+or annotation there is in the text, the more one may begin to learn about
+language and the more it will help accomplish more intelligent OCR. She
+recommended the development of software tools that will help one begin to
+understand more about a text, which can then be applied to scanning
+images of that text in that format and to using more intelligence to help
+one interpret or understand the text.
+
+HOCKEY posited the need to think about common methods of text-encoding
+for a long time to come, because building these large bodies of text is
+extremely expensive and will only be done once.
+
+In the more general discussion on approaches to encoding that followed,
+these points were made:
+
+BESSER identified the underlying problem with standards that all have to
+struggle with in adopting a standard, namely, the tension between a very
+highly defined standard that is very interchangeable but does not work
+for everyone because something is lacking, and a standard that is less
+defined, more open, more adaptable, but less interchangeable. Contending
+that the way in which people use SGML is not sufficiently defined, BESSER
+wondered 1) if people resist the TEI because they think it is too defined
+in certain things they do not fit into, and 2) how progress with
+interchangeability can be made without frightening people away.
+
+SPERBERG-McQUEEN replied that the published drafts of the TEI had met
+with surprisingly little objection on the grounds that they do not allow
+one to handle X or Y or Z. Particular concerns of the affiliated
+projects have led, in practice, to discussions of how extensions are to
+be made; the primary concern of any project has to be how it can be
+represented locally, thus making interchange secondary. The TEI has
+received much criticism based on the notion that everything in it is
+required or even recommended, which, as it happens, is a misconception
+from the beginning, because none of it is required and very little is
+actually actively recommended for all cases, except that one document
+one's source.
+
+SPERBERG-McQUEEN agreed with BESSER about this trade-off: all the
+projects in a set of twenty TEI-conformant projects will not necessarily
+tag the material in the same way. One result of the TEI will be that the
+easiest problems will be solved--those dealing with the external form of
+the information; but the problem that is hardest in interchange is that
+one is not encoding what another wants, and vice versa. Thus, after
+the adoption of a common notation, the differences in the underlying
+conceptions of what is interesting about texts become more visible.
+The success of a standard like the TEI will lie in the ability of
+the recipient of interchanged texts to use some of what it contains
+and to add the information that was not encoded that one wants, in a
+layered way, so that texts can be gradually enriched and one does not
+have to put in everything all at once. Hence, having a well-behaved
+markup scheme is important.
+
+STEVENS followed up on the paradoxical analogy that BESSER alluded to in
+the example of the MARC records, namely, the formats that are the same
+except that they are different. STEVENS drew a parallel between
+document-type definitions and MARC records for books and serials and maps,
+where one has a tagging structure and there is a text-interchange.
+STEVENS opined that the producers of the information will set the terms
+for the standard (i.e., develop document-type definitions for the users
+of their products), creating a situation that will be problematical for
+an institution like the Library of Congress, which will have to deal with
+the DTDs in the event that a multiplicity of them develops. Thus,
+numerous people are seeking a standard but cannot find the tag set that
+will be acceptable to them and their clients. SPERBERG-McQUEEN agreed
+with this view, and said that the situation was in a way worse: attempting
+to unify arbitrary DTDs resembled attempting to unify a MARC record with a
+bibliographic record done according to the Prussian instructions.
+According to STEVENS, this situation occurred very early in the process.
+
+WATERS recalled from early discussions on Project Open Book the concern
+of many people that merely by producing images, POB was not really
+enhancing intellectual access to the material. Nevertheless, not wishing
+to overemphasize the opposition between imaging and full text, WATERS
+stated that POB views getting the images as a first step toward possibly
+converting to full text through character recognition, if the technology
+is appropriate. WATERS also emphasized that encoding is involved even
+with a set of images.
+
+SPERBERG-McQUEEN agreed with WATERS that one can create an SGML document
+consisting wholly of images. At first sight, organizing graphic images
+with an SGML document may not seem to offer great advantages, but the
+advantages of the scheme WATERS described would be precisely that
+ability to move into something that is more of a multimedia document:
+a combination of transcribed text and page images. WEIBEL concurred in
+this judgment, offering evidence from Project ADAPT, where a page is
+divided into text elements and graphic elements, and in fact the text
+elements are organized by columns and lines. These lines may be used as
+the basis for distributing documents in a network environment. As one
+develops software intelligent enough to recognize what those elements
+are, it makes sense to apply SGML to an image initially, that may, in
+fact, ultimately become more and more text, either through OCR or edited
+OCR or even just through keying. For WATERS, the labor of composing the
+document and saying this set of documents or this set of images belongs
+to this document constitutes a significant investment.
+
+WEIBEL also made the point that the AAP tag sets, while not excessively
+prescriptive, offer a common starting point; they do not define the
+structure of the documents, though. They have some recommendations about
+DTDs one could use as examples, but they do just suggest tag sets. For
+example, the CORE project attempts to use the AAP markup as much as
+possible, but there are clearly areas where structure must be added.
+That in no way contradicts the use of AAP tag sets.
+
+SPERBERG-McQUEEN noted that the TEI prepared a long working paper early
+on about the AAP tag set and what it lacked that the TEI thought it
+needed, and a fairly long critique of the naming conventions, which has
+led to a very different style of naming in the TEI. He stressed the
+importance of the opposition between prescriptive markup, the kind that a
+publisher or anybody can do when producing documents de novo, and
+descriptive markup, in which one has to take what the text carrier
+provides. In these particular tag sets it is easy to overemphasize this
+opposition, because the AAP tag set is extremely flexible. Even if one
+just used the DTDs, they allow almost anything to appear almost anywhere.
+
+ ******
+
+SESSION VI. COPYRIGHT ISSUES
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+PETERS * Several cautions concerning copyright in an electronic
+environment * Review of copyright law in the United States * The notion
+of the public good and the desirability of incentives to promote it *
+What copyright protects * Works not protected by copyright * The rights
+of copyright holders * Publishers' concerns in today's electronic
+environment * Compulsory licenses * The price of copyright in a digital
+medium and the need for cooperation * Additional clarifications * Rough
+justice oftentimes the outcome in numerous copyright matters * Copyright
+in an electronic society * Copyright law always only sets up the
+boundaries; anything can be changed by contract *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Marybeth PETERS, policy planning adviser to the Register of Copyrights,
+Library of Congress, made several general comments and then opened the
+floor to discussion of subjects of interest to the audience.
+
+Having attended several sessions in an effort to gain a sense of what
+people did and where copyright would affect their lives, PETERS expressed
+the following cautions:
+
+ * If one takes and converts materials and puts them in new forms,
+ then, from a copyright point of view, one is creating something and
+ will receive some rights.
+
+ * However, if what one is converting already exists, a question
+ immediately arises about the status of the materials in question.
+
+ * Putting something in the public domain in the United States offers
+ some freedom from anxiety, but distributing it throughout the world
+ on a network is another matter, even if one has put it in the public
+ domain in the United States. Re foreign laws, very frequently a
+ work can be in the public domain in the United States but protected
+ in other countries. Thus, one must consider all of the places a
+ work may reach, lest one unwittingly become liable to being faced
+ with a suit for copyright infringement, or at least a letter
+ demanding discussion of what one is doing.
+
+PETERS reviewed copyright law in the United States. The U.S.
+Constitution effectively states that Congress has the power to enact
+copyright laws for two purposes: 1) to encourage the creation and
+dissemination of intellectual works for the good of society as a whole;
+and, significantly, 2) to give creators and those who package and
+disseminate materials the economic rewards that are due them.
+
+Congress strives to strike a balance, which at times can become an
+emotional issue. The United States has never accepted the notion of the
+natural right of an author so much as it has accepted the notion of the
+public good and the desirability of incentives to promote it. This state
+of affairs, however, has created strains on the international level and
+is the reason for several of the differences in the laws that we have.
+Today the United States protects almost every kind of work that can be
+called an expression of an author. The standard for gaining copyright
+protection is simply originality. This is a low standard and means that
+a work is not copied from something else, as well as shows a certain
+minimal amount of authorship. One can also acquire copyright protection
+for making a new version of preexisting material, provided it manifests
+some spark of creativity.
+
+However, copyright does not protect ideas, methods, systems--only the way
+that one expresses those things. Nor does copyright protect anything
+that is mechanical, anything that does not involve choice, or criteria
+concerning whether or not one should do a thing. For example, the
+results of a process called declicking, in which one mechanically removes
+impure sounds from old recordings, are not copyrightable. On the other
+hand, the choice to record a song digitally and to increase the sound of
+violins or to bring up the tympani constitutes the results of conversion
+that are copyrightable. Moreover, if a work is protected by copyright in
+the United States, one generally needs the permission of the copyright
+owner to convert it. Normally, who will own the new--that is, converted-
+-material is a matter of contract. In the absence of a contract, the
+person who creates the new material is the author and owner. But people
+do not generally think about the copyright implications until after the
+fact. PETERS stressed the need when dealing with copyrighted works to
+think about copyright in advance. One's bargaining power is much greater
+up front than it is down the road.
+
+PETERS next discussed works not protected by copyright, for example, any
+work done by a federal employee as part of his or her official duties is
+in the public domain in the United States. The issue is not wholly free
+of doubt concerning whether or not the work is in the public domain
+outside the United States. Other materials in the public domain include:
+any works published more than seventy-five years ago, and any work
+published in the United States more than twenty-eight years ago, whose
+copyright was not renewed. In talking about the new technology and
+putting material in a digital form to send all over the world, PETERS
+cautioned, one must keep in mind that while the rights may not be an
+issue in the United States, they may be in different parts of the world,
+where most countries previously employed a copyright term of the life of
+the author plus fifty years.
+
+PETERS next reviewed the economics of copyright holding. Simply,
+economic rights are the rights to control the reproduction of a work in
+any form. They belong to the author, or in the case of a work made for
+hire, the employer. The second right, which is critical to conversion,
+is the right to change a work. The right to make new versions is perhaps
+one of the most significant rights of authors, particularly in an
+electronic world. The third right is the right to publish the work and
+the right to disseminate it, something that everyone who deals in an
+electronic medium needs to know. The basic rule is if a copy is sold,
+all rights of distribution are extinguished with the sale of that copy.
+The key is that it must be sold. A number of companies overcome this
+obstacle by leasing or renting their product. These companies argue that
+if the material is rented or leased and not sold, they control the uses
+of a work. The fourth right, and one very important in a digital world,
+is a right of public performance, which means the right to show the work
+sequentially. For example, copyright owners control the showing of a
+CD-ROM product in a public place such as a public library. The reverse
+side of public performance is something called the right of public
+display. Moral rights also exist, which at the federal level apply only
+to very limited visual works of art, but in theory may apply under
+contract and other principles. Moral rights may include the right of an
+author to have his or her name on a work, the right of attribution, and
+the right to object to distortion or mutilation--the right of integrity.
+
+The way copyright law is worded gives much latitude to activities such as
+preservation; to use of material for scholarly and research purposes when
+the user does not make multiple copies; and to the generation of
+facsimile copies of unpublished works by libraries for themselves and
+other libraries. But the law does not allow anyone to become the
+distributor of the product for the entire world. In today's electronic
+environment, publishers are extremely concerned that the entire world is
+networked and can obtain the information desired from a single copy in a
+single library. Hence, if there is to be only one sale, which publishers
+may choose to live with, they will obtain their money in other ways, for
+example, from access and use. Hence, the development of site licenses
+and other kinds of agreements to cover what publishers believe they
+should be compensated for. Any solution that the United States takes
+today has to consider the international arena.
+
+Noting that the United States is a member of the Berne Convention and
+subscribes to its provisions, PETERS described the permissions process.
+She also defined compulsory licenses. A compulsory license, of which the
+United States has had a few, builds into the law the right to use a work
+subject to certain terms and conditions. In the international arena,
+however, the ability to use compulsory licenses is extremely limited.
+Thus, clearinghouses and other collectives comprise one option that has
+succeeded in providing for use of a work. Often overlooked when one
+begins to use copyrighted material and put products together is how
+expensive the permissions process and managing it is. According to
+PETERS, the price of copyright in a digital medium, whatever solution is
+worked out, will include managing and assembling the database. She
+strongly recommended that publishers and librarians or people with
+various backgrounds cooperate to work out administratively feasible
+systems, in order to produce better results.
+
+In the lengthy question-and-answer period that followed PETERS's
+presentation, the following points emerged:
+
+ * The Copyright Office maintains that anything mechanical and
+ totally exhaustive probably is not protected. In the event that
+ what an individual did in developing potentially copyrightable
+ material is not understood, the Copyright Office will ask about the
+ creative choices the applicant chose to make or not to make. As a
+ practical matter, if one believes she or he has made enough of those
+ choices, that person has a right to assert a copyright and someone
+ else must assert that the work is not copyrightable. The more
+ mechanical, the more automatic, a thing is, the less likely it is to
+ be copyrightable.
+
+ * Nearly all photographs are deemed to be copyrightable, but no one
+ worries about them much, because everyone is free to take the same
+ image. Thus, a photographic copyright represents what is called a
+ "thin" copyright. The photograph itself must be duplicated, in
+ order for copyright to be violated.
+
+ * The Copyright Office takes the position that X-rays are not
+ copyrightable because they are mechanical. It can be argued
+ whether or not image enhancement in scanning can be protected. One
+ must exercise care with material created with public funds and
+ generally in the public domain. An article written by a federal
+ employee, if written as part of official duties, is not
+ copyrightable. However, control over a scientific article written
+ by a National Institutes of Health grantee (i.e., someone who
+ receives money from the U.S. government), depends on NIH policy. If
+ the government agency has no policy (and that policy can be
+ contained in its regulations, the contract, or the grant), the
+ author retains copyright. If a provision of the contract, grant, or
+ regulation states that there will be no copyright, then it does not
+ exist. When a work is created, copyright automatically comes into
+ existence unless something exists that says it does not.
+
+ * An enhanced electronic copy of a print copy of an older reference
+ work in the public domain that does not contain copyrightable new
+ material is a purely mechanical rendition of the original work, and
+ is not copyrightable.
+
+ * Usually, when a work enters the public domain, nothing can remove
+ it. For example, Congress recently passed into law the concept of
+ automatic renewal, which means that copyright on any work published
+ between l964 and l978 does not have to be renewed in order to
+ receive a seventy-five-year term. But any work not renewed before
+ 1964 is in the public domain.
+
+ * Concerning whether or not the United States keeps track of when
+ authors die, nothing was ever done, nor is anything being done at
+ the moment by the Copyright Office.
+
+ * Software that drives a mechanical process is itself copyrightable.
+ If one changes platforms, the software itself has a copyright. The
+ World Intellectual Property Organization will hold a symposium 28
+ March through 2 April l993, at Harvard University, on digital
+ technology, and will study this entire issue. If one purchases a
+ computer software package, such as MacPaint, and creates something
+ new, one receives protection only for that which has been added.
+
+PETERS added that often in copyright matters, rough justice is the
+outcome, for example, in collective licensing, ASCAP (i.e., American
+Society of Composers, Authors, and Publishers), and BMI (i.e., Broadcast
+Music, Inc.), where it may seem that the big guys receive more than their
+due. Of course, people ought not to copy a creative product without
+paying for it; there should be some compensation. But the truth of the
+world, and it is not a great truth, is that the big guy gets played on
+the radio more frequently than the little guy, who has to do much more
+until he becomes a big guy. That is true of every author, every
+composer, everyone, and, unfortunately, is part of life.
+
+Copyright always originates with the author, except in cases of works
+made for hire. (Most software falls into this category.) When an author
+sends his article to a journal, he has not relinquished copyright, though
+he retains the right to relinquish it. The author receives absolutely
+everything. The less prominent the author, the more leverage the
+publisher will have in contract negotiations. In order to transfer the
+rights, the author must sign an agreement giving them away.
+
+In an electronic society, it is important to be able to license a writer
+and work out deals. With regard to use of a work, it usually is much
+easier when a publisher holds the rights. In an electronic era, a real
+problem arises when one is digitizing and making information available.
+PETERS referred again to electronic licensing clearinghouses. Copyright
+ought to remain with the author, but as one moves forward globally in the
+electronic arena, a middleman who can handle the various rights becomes
+increasingly necessary.
+
+The notion of copyright law is that it resides with the individual, but
+in an on-line environment, where a work can be adapted and tinkered with
+by many individuals, there is concern. If changes are authorized and
+there is no agreement to the contrary, the person who changes a work owns
+the changes. To put it another way, the person who acquires permission
+to change a work technically will become the author and the owner, unless
+some agreement to the contrary has been made. It is typical for the
+original publisher to try to control all of the versions and all of the
+uses. Copyright law always only sets up the boundaries. Anything can be
+changed by contract.
+
+ ******
+
+SESSION VII. CONCLUSION
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+GENERAL DISCUSSION * Two questions for discussion * Different emphases in
+the Workshop * Bringing the text and image partisans together *
+Desiderata in planning the long-term development of something * Questions
+surrounding the issue of electronic deposit * Discussion of electronic
+deposit as an allusion to the issue of standards * Need for a directory
+of preservation projects in digital form and for access to their
+digitized files * CETH's catalogue of machine-readable texts in the
+humanities * What constitutes a publication in the electronic world? *
+Need for LC to deal with the concept of on-line publishing * LC's Network
+Development Office exploring the limits of MARC as a standard in terms
+of handling electronic information * Magnitude of the problem and the
+need for distributed responsibility in order to maintain and store
+electronic information * Workshop participants to be viewed as a starting
+point * Development of a network version of AM urged * A step toward AM's
+construction of some sort of apparatus for network access * A delicate
+and agonizing policy question for LC * Re the issue of electronic
+deposit, LC urged to initiate a catalytic process in terms of distributed
+responsibility * Suggestions for cooperative ventures * Commercial
+publishers' fears * Strategic questions for getting the image and text
+people to think through long-term cooperation * Clarification of the
+driving force behind both the Perseus and the Cornell Xerox projects *
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+In his role as moderator of the concluding session, GIFFORD raised two
+questions he believed would benefit from discussion: 1) Are there enough
+commonalities among those of us that have been here for two days so that
+we can see courses of action that should be taken in the future? And, if
+so, what are they and who might take them? 2) Partly derivative from
+that, but obviously very dangerous to LC as host, do you see a role for
+the Library of Congress in all this? Of course, the Library of Congress
+holds a rather special status in a number of these matters, because it is
+not perceived as a player with an economic stake in them, but are there
+roles that LC can play that can help advance us toward where we are heading?
+
+Describing himself as an uninformed observer of the technicalities of the
+last two days, GIFFORD detected three different emphases in the Workshop:
+1) people who are very deeply committed to text; 2) people who are almost
+passionate about images; and 3) a few people who are very committed to
+what happens to the networks. In other words, the new networking
+dimension, the accessibility of the processability, the portability of
+all this across the networks. How do we pull those three together?
+
+Adding a question that reflected HOCKEY's comment that this was the
+fourth workshop she had attended in the previous thirty days, FLEISCHHAUER
+wondered to what extent this meeting had reinvented the wheel, or if it
+had contributed anything in the way of bringing together a different group
+of people from those who normally appear on the workshop circuit.
+
+HOCKEY confessed to being struck at this meeting and the one the
+Electronic Pierce Consortium organized the previous week that this was a
+coming together of people working on texts and not images. Attempting to
+bring the two together is something we ought to be thinking about for the
+future: How one can think about working with image material to begin
+with, but structuring it and digitizing it in such a way that at a later
+stage it can be interpreted into text, and find a common way of building
+text and images together so that they can be used jointly in the future,
+with the network support to begin there because that is how people will
+want to access it.
+
+In planning the long-term development of something, which is what is
+being done in electronic text, HOCKEY stressed the importance not only
+of discussing the technical aspects of how one does it but particularly
+of thinking about what the people who use the stuff will want to do.
+But conversely, there are numerous things that people start to do with
+electronic text or material that nobody ever thought of in the beginning.
+
+LESK, in response to the question concerning the role of the Library of
+Congress, remarked the often suggested desideratum of having electronic
+deposit: Since everything is now computer-typeset, an entire decade of
+material that was machine-readable exists, but the publishers frequently
+did not save it; has LC taken any action to have its copyright deposit
+operation start collecting these machine-readable versions? In the
+absence of PETERS, GIFFORD replied that the question was being
+actively considered but that that was only one dimension of the problem.
+Another dimension is the whole question of the integrity of the original
+electronic document. It becomes highly important in science to prove
+authorship. How will that be done?
+
+ERWAY explained that, under the old policy, to make a claim for a
+copyright for works that were published in electronic form, including
+software, one had to submit a paper copy of the first and last twenty
+pages of code--something that represented the work but did not include
+the entire work itself and had little value to anyone. As a temporary
+measure, LC has claimed the right to demand electronic versions of
+electronic publications. This measure entails a proactive role for the
+Library to say that it wants a particular electronic version. Publishers
+then have perhaps a year to submit it. But the real problem for LC is
+what to do with all this material in all these different formats. Will
+the Library mount it? How will it give people access to it? How does LC
+keep track of the appropriate computers, software, and media? The situation
+is so hard to control, ERWAY said, that it makes sense for each publishing
+house to maintain its own archive. But LC cannot enforce that either.
+
+GIFFORD acknowledged LESK's suggestion that establishing a priority
+offered the solution, albeit a fairly complicated one. But who maintains
+that register?, he asked. GRABER noted that LC does attempt to collect a
+Macintosh version and the IBM-compatible version of software. It does
+not collect other versions. But while true for software, BYRUM observed,
+this reply does not speak to materials, that is, all the materials that
+were published that were on somebody's microcomputer or driver tapes
+at a publishing office across the country. LC does well to acquire
+specific machine-readable products selectively that were intended to be
+machine-readable. Materials that were in machine-readable form at one time,
+BYRUM said, would be beyond LC's capability at the moment, insofar as
+attempting to acquire, organize, and preserve them are concerned--and
+preservation would be the most important consideration. In this
+connection, GIFFORD reiterated the need to work out some sense of
+distributive responsibility for a number of these issues, which
+inevitably will require significant cooperation and discussion.
+Nobody can do it all.
+
+LESK suggested that some publishers may look with favor on LC beginning
+to serve as a depository of tapes in an electronic manuscript standard.
+Publishers may view this as a service that they did not have to perform
+and they might send in tapes. However, SPERBERG-McQUEEN countered,
+although publishers have had equivalent services available to them for a
+long time, the electronic text archive has never turned away or been
+flooded with tapes and is forever sending feedback to the depositor.
+Some publishers do send in tapes.
+
+ANDRE viewed this discussion as an allusion to the issue of standards.
+She recommended that the AAP standard and the TEI, which has already been
+somewhat harmonized internationally and which also shares several
+compatibilities with the AAP, be harmonized to ensure sufficient
+compatibility in the software. She drew the line at saying LC ought to
+be the locus or forum for such harmonization.
+
+Taking the group in a slightly different direction, but one where at
+least in the near term LC might play a helpful role, LYNCH remarked the
+plans of a number of projects to carry out preservation by creating
+digital images that will end up in on-line or near-line storage at some
+institution. Presumably, LC will link this material somehow to its
+on-line catalog in most cases. Thus, it is in a digital form. LYNCH had
+the impression that many of these institutions would be willing to make
+those files accessible to other people outside the institution, provided
+that there is no copyright problem. This desideratum will require
+propagating the knowledge that those digitized files exist, so that they
+can end up in other on-line catalogs. Although uncertain about the
+mechanism for achieving this result, LYNCH said that it warranted
+scrutiny because it seemed to be connected to some of the basic issues of
+cataloging and distribution of records. It would be foolish, given the
+amount of work that all of us have to do and our meager resources, to
+discover multiple institutions digitizing the same work. Re microforms,
+LYNCH said, we are in pretty good shape.
+
+BATTIN called this a big problem and noted that the Cornell people (who
+had already departed) were working on it. At issue from the beginning
+was to learn how to catalog that information into RLIN and then into
+OCLC, so that it would be accessible. That issue remains to be resolved.
+LYNCH rejoined that putting it into OCLC or RLIN was helpful insofar as
+somebody who is thinking of performing preservation activity on that work
+could learn about it. It is not necessarily helpful for institutions to
+make that available. BATTIN opined that the idea was that it not only be
+for preservation purposes but for the convenience of people looking for
+this material. She endorsed LYNCH's dictum that duplication of this
+effort was to be avoided by every means.
+
+HOCKEY informed the Workshop about one major current activity of CETH,
+namely a catalogue of machine-readable texts in the humanities. Held on
+RLIN at present, the catalogue has been concentrated on ASCII as opposed
+to digitized images of text. She is exploring ways to improve the
+catalogue and make it more widely available, and welcomed suggestions
+about these concerns. CETH owns the records, which are not just
+restricted to RLIN, and can distribute them however it wishes.
+
+Taking up LESK's earlier question, BATTIN inquired whether LC, since it
+is accepting electronic files and designing a mechanism for dealing with
+that rather than putting books on shelves, would become responsible for
+the National Copyright Depository of Electronic Materials. Of course
+that could not be accomplished overnight, but it would be something LC
+could plan for. GIFFORD acknowledged that much thought was being devoted
+to that set of problems and returned the discussion to the issue raised
+by LYNCH--whether or not putting the kind of records that both BATTIN and
+HOCKEY have been talking about in RLIN is not a satisfactory solution.
+It seemed to him that RLIN answered LYNCH's original point concerning
+some kind of directory for these kinds of materials. In a situation
+where somebody is attempting to decide whether or not to scan this or
+film that or to learn whether or not someone has already done so, LYNCH
+suggested, RLIN is helpful, but it is not helpful in the case of a local,
+on-line catalogue. Further, one would like to have her or his system be
+aware that that exists in digital form, so that one can present it to a
+patron, even though one did not digitize it, if it is out of copyright.
+The only way to make those linkages would be to perform a tremendous
+amount of real-time look-up, which would be awkward at best, or
+periodically to yank the whole file from RLIN and match it against one's
+own stuff, which is a nuisance.
+
+But where, ERWAY inquired, does one stop including things that are
+available with Internet, for instance, in one's local catalogue?
+It almost seems that that is LC's means to acquire access to them.
+That represents LC's new form of library loan. Perhaps LC's new on-line
+catalogue is an amalgamation of all these catalogues on line. LYNCH
+conceded that perhaps that was true in the very long term, but was not
+applicable to scanning in the short term. In his view, the totals cited
+by Yale, 10,000 books over perhaps a four-year period, and 1,000-1,500
+books from Cornell, were not big numbers, while searching all over
+creation for relatively rare occurrences will prove to be less efficient.
+As GIFFORD wondered if this would not be a separable file on RLIN and
+could be requested from them, BATTIN interjected that it was easily
+accessible to an institution. SEVERTSON pointed out that that file, cum
+enhancements, was available with reference information on CD-ROM, which
+makes it a little more available.
+
+In HOCKEY's view, the real question facing the Workshop is what to put in
+this catalogue, because that raises the question of what constitutes a
+publication in the electronic world. (WEIBEL interjected that Eric Joule
+in OCLC's Office of Research is also wrestling with this particular
+problem, while GIFFORD thought it sounded fairly generic.) HOCKEY
+contended that a majority of texts in the humanities are in the hands
+of either a small number of large research institutions or individuals
+and are not generally available for anyone else to access at all.
+She wondered if these texts ought to be catalogued.
+
+After argument proceeded back and forth for several minutes over why
+cataloguing might be a necessary service, LEBRON suggested that this
+issue involved the responsibility of a publisher. The fact that someone
+has created something electronically and keeps it under his or her
+control does not constitute publication. Publication implies
+dissemination. While it would be important for a scholar to let other
+people know that this creation exists, in many respects this is no
+different from an unpublished manuscript. That is what is being accessed
+in there, except that now one is not looking at it in the hard-copy but
+in the electronic environment.
+
+LEBRON expressed puzzlement at the variety of ways electronic publishing
+has been viewed. Much of what has been discussed throughout these two
+days has concerned CD-ROM publishing, whereas in the on-line environment
+that she confronts, the constraints and challenges are very different.
+Sooner or later LC will have to deal with the concept of on-line
+publishing. Taking up the comment ERWAY made earlier about storing
+copies, LEBRON gave her own journal as an example. How would she deposit
+OJCCT for copyright?, she asked, because the journal will exist in the
+mainframe at OCLC and people will be able to access it. Here the
+situation is different, ownership versus access, and is something that
+arises with publication in the on-line environment, faster than is
+sometimes realized. Lacking clear answers to all of these questions
+herself, LEBRON did not anticipate that LC would be able to take a role
+in helping to define some of them for quite a while.
+
+GREENFIELD observed that LC's Network Development Office is attempting,
+among other things, to explore the limits of MARC as a standard in terms
+of handling electronic information. GREENFIELD also noted that Rebecca
+GUENTHER from that office gave a paper to the American Society for
+Information Science (ASIS) summarizing several of the discussion papers
+that were coming out of the Network Development Office. GREENFIELD said
+he understood that that office had a list-server soliciting just the kind
+of feedback received today concerning the difficulties of identifying and
+cataloguing electronic information. GREENFIELD hoped that everybody
+would be aware of that and somehow contribute to that conversation.
+
+Noting two of LC's roles, first, to act as a repository of record for
+material that is copyrighted in this country, and second, to make
+materials it holds available in some limited form to a clientele that
+goes beyond Congress, BESSER suggested that it was incumbent on LC to
+extend those responsibilities to all the things being published in
+electronic form. This would mean eventually accepting electronic
+formats. LC could require that at some point they be in a certain
+limited set of formats, and then develop mechanisms for allowing people
+to access those in the same way that other things are accessed. This
+does not imply that they are on the network and available to everyone.
+LC does that with most of its bibliographic records, BESSER said, which
+end up migrating to the utility (e.g., OCLC) or somewhere else. But just
+as most of LC's books are available in some form through interlibrary
+loan or some other mechanism, so in the same way electronic formats ought
+to be available to others in some format, though with some copyright
+considerations. BESSER was not suggesting that these mechanisms be
+established tomorrow, only that they seemed to fall within LC's purview,
+and that there should be long-range plans to establish them.
+
+Acknowledging that those from LC in the room agreed with BESSER
+concerning the need to confront difficult questions, GIFFORD underscored
+the magnitude of the problem of what to keep and what to select. GIFFORD
+noted that LC currently receives some 31,000 items per day, not counting
+electronic materials, and argued for much more distributed responsibility
+in order to maintain and store electronic information.
+
+BESSER responded that the assembled group could be viewed as a starting
+point, whose initial operating premise could be helping to move in this
+direction and defining how LC could do so, for example, in areas of
+standardization or distribution of responsibility.
+
+FLEISCHHAUER added that AM was fully engaged, wrestling with some of the
+questions that pertain to the conversion of older historical materials,
+which would be one thing that the Library of Congress might do. Several
+points mentioned by BESSER and several others on this question have a
+much greater impact on those who are concerned with cataloguing and the
+networking of bibliographic information, as well as preservation itself.
+
+Speaking directly to AM, which he considered was a largely uncopyrighted
+database, LYNCH urged development of a network version of AM, or
+consideration of making the data in it available to people interested in
+doing network multimedia. On account of the current great shortage of
+digital data that is both appealing and unencumbered by complex rights
+problems, this course of action could have a significant effect on making
+network multimedia a reality.
+
+In this connection, FLEISCHHAUER reported on a fragmentary prototype in
+LC's Office of Information Technology Services that attempts to associate
+digital images of photographs with cataloguing information in ways that
+work within a local area network--a step, so to say, toward AM's
+construction of some sort of apparatus for access. Further, AM has
+attempted to use standard data forms in order to help make that
+distinction between the access tools and the underlying data, and thus
+believes that the database is networkable.
+
+A delicate and agonizing policy question for LC, however, which comes
+back to resources and unfortunately has an impact on this, is to find
+some appropriate, honorable, and legal cost-recovery possibilities. A
+certain skittishness concerning cost-recovery has made people unsure
+exactly what to do. AM would be highly receptive to discussing further
+LYNCH's offer to test or demonstrate its database in a network
+environment, FLEISCHHAUER said.
+
+Returning the discussion to what she viewed as the vital issue of
+electronic deposit, BATTIN recommended that LC initiate a catalytic
+process in terms of distributed responsibility, that is, bring together
+the distributed organizations and set up a study group to look at all
+these issues and see where we as a nation should move. The broader
+issues of how we deal with the management of electronic information will
+not disappear, but only grow worse.
+
+LESK took up this theme and suggested that LC attempt to persuade one
+major library in each state to deal with its state equivalent publisher,
+which might produce a cooperative project that would be equitably
+distributed around the country, and one in which LC would be dealing with
+a minimal number of publishers and minimal copyright problems.
+
+GRABER remarked the recent development in the scientific community of a
+willingness to use SGML and either deposit or interchange on a fairly
+standardized format. He wondered if a similar movement was taking place
+in the humanities. Although the National Library of Medicine found only
+a few publishers to cooperate in a like venture two or three years ago, a
+new effort might generate a much larger number willing to cooperate.
+
+KIMBALL recounted his unit's (Machine-Readable Collections Reading Room)
+troubles with the commercial publishers of electronic media in acquiring
+materials for LC's collections, in particular the publishers' fear that
+they would not be able to cover their costs and would lose control of
+their products, that LC would give them away or sell them and make
+profits from them. He doubted that the publishing industry was prepared
+to move into this area at the moment, given its resistance to allowing LC
+to use its machine-readable materials as the Library would like.
+
+The copyright law now addresses compact disk as a medium, and LC can
+request one copy of that, or two copies if it is the only version, and
+can request copies of software, but that fails to address magazines or
+books or anything like that which is in machine-readable form.
+
+GIFFORD acknowledged the thorny nature of this issue, which he illustrated
+with the example of the cumbersome process involved in putting a copy of a
+scientific database on a LAN in LC's science reading room. He also
+acknowledged that LC needs help and could enlist the energies and talents
+of Workshop participants in thinking through a number of these problems.
+
+GIFFORD returned the discussion to getting the image and text people to
+think through together where they want to go in the long term. MYLONAS
+conceded that her experience at the Pierce Symposium the previous week at
+Georgetown University and this week at LC had forced her to reevaluate
+her perspective on the usefulness of text as images. MYLONAS framed the
+issues in a series of questions: How do we acquire machine-readable
+text? Do we take pictures of it and perform OCR on it later? Is it
+important to obtain very high-quality images and text, etc.?
+FLEISCHHAUER agreed with MYLONAS's framing of strategic questions, adding
+that a large institution such as LC probably has to do all of those
+things at different times. Thus, the trick is to exercise judgment. The
+Workshop had added to his and AM's considerations in making those
+judgments. Concerning future meetings or discussions, MYLONAS suggested
+that screening priorities would be helpful.
+
+WEIBEL opined that the diversity reflected in this group was a sign both
+of the health and of the immaturity of the field, and more time would
+have to pass before we convince one another concerning standards.
+
+An exchange between MYLONAS and BATTIN clarified the point that the
+driving force behind both the Perseus and the Cornell Xerox projects was
+the preservation of knowledge for the future, not simply for particular
+research use. In the case of Perseus, MYLONAS said, the assumption was
+that the texts would not be entered again into electronically readable
+form. SPERBERG-McQUEEN added that a scanned image would not serve as an
+archival copy for purposes of preservation in the case of, say, the Bill
+of Rights, in the sense that the scanned images are effectively the
+archival copies for the Cornell mathematics books.
+
+
+ *** *** *** ****** *** *** ***
+
+
+ Appendix I: PROGRAM
+
+
+
+ WORKSHOP
+ ON
+ ELECTRONIC
+ TEXTS
+
+
+
+ 9-10 June 1992
+
+ Library of Congress
+ Washington, D.C.
+
+
+
+ Supported by a Grant from the David and Lucile Packard Foundation
+
+
+Tuesday, 9 June 1992
+
+NATIONAL DEMONSTRATION LAB, ATRIUM, LIBRARY MADISON
+
+8:30 AM Coffee and Danish, registration
+
+9:00 AM Welcome
+
+ Prosser Gifford, Director for Scholarly Programs, and Carl
+ Fleischhauer, Coordinator, American Memory, Library of
+ Congress
+
+9:l5 AM Session I. Content in a New Form: Who Will Use It and What
+ Will They Do?
+
+ Broad description of the range of electronic information.
+ Characterization of who uses it and how it is or may be used.
+ In addition to a look at scholarly uses, this session will
+ include a presentation on use by students (K-12 and college)
+ and the general public.
+
+ Moderator: James Daly
+ Avra Michelson, Archival Research and Evaluation Staff,
+ National Archives and Records Administration (Overview)
+ Susan H. Veccia, Team Leader, American Memory, User Evaluation,
+ and
+ Joanne Freeman, Associate Coordinator, American Memory, Library
+ of Congress (Beyond the scholar)
+
+10:30-
+11:00 AM Break
+
+11:00 AM Session II. Show and Tell.
+
+ Each presentation to consist of a fifteen-minute
+ statement/show; group discussion will follow lunch.
+
+ Moderator: Jacqueline Hess, Director, National Demonstration
+ Lab
+
+ 1. A classics project, stressing texts and text retrieval
+ more than multimedia: Perseus Project, Harvard
+ University
+ Elli Mylonas, Managing Editor
+
+ 2. Other humanities projects employing the emerging norms of
+ the Text Encoding Initiative (TEI): Chadwyck-Healey's
+ The English Poetry Full Text Database and/or Patrologia
+ Latina Database
+ Eric M. Calaluca, Vice President, Chadwyck-Healey, Inc.
+
+ 3. American Memory
+ Carl Fleischhauer, Coordinator, and
+ Ricky Erway, Associate Coordinator, Library of Congress
+
+ 4. Founding Fathers example from Packard Humanities
+ Institute: The Papers of George Washington, University
+ of Virginia
+ Dorothy Twohig, Managing Editor, and/or
+ David Woodley Packard
+
+ 5. An electronic medical journal offering graphics and
+ full-text searchability: The Online Journal of Current
+ Clinical Trials, American Association for the Advancement
+ of Science
+ Maria L. Lebron, Managing Editor
+
+ 6. A project that offers facsimile images of pages but omits
+ searchable text: Cornell math books
+ Lynne K. Personius, Assistant Director, Cornell
+ Information Technologies for Scholarly Information
+ Sources, Cornell University
+
+12:30 PM Lunch (Dining Room A, Library Madison 620. Exhibits
+ available.)
+
+1:30 PM Session II. Show and Tell (Cont'd.).
+
+3:00-
+3:30 PM Break
+
+3:30-
+5:30 PM Session III. Distribution, Networks, and Networking: Options
+ for Dissemination.
+
+ Published disks: University presses and public-sector
+ publishers, private-sector publishers
+ Computer networks
+
+ Moderator: Robert G. Zich, Special Assistant to the Associate
+ Librarian for Special Projects, Library of Congress
+ Clifford A. Lynch, Director, Library Automation, University of
+ California
+ Howard Besser, School of Library and Information Science,
+ University of Pittsburgh
+ Ronald L. Larsen, Associate Director of Libraries for
+ Information Technology, University of Maryland at College
+ Park
+ Edwin B. Brownrigg, Executive Director, Memex Research
+ Institute
+
+6:30 PM Reception (Montpelier Room, Library Madison 619.)
+
+ ******
+
+Wednesday, 10 June 1992
+
+DINING ROOM A, LIBRARY MADISON 620
+
+8:30 AM Coffee and Danish
+
+9:00 AM Session IV. Image Capture, Text Capture, Overview of Text and
+ Image Storage Formats.
+
+ Moderator: William L. Hooton, Vice President of Operations,
+ I-NET
+
+ A) Principal Methods for Image Capture of Text:
+ Direct scanning
+ Use of microform
+
+ Anne R. Kenney, Assistant Director, Department of Preservation
+ and Conservation, Cornell University
+ Pamela Q.J. Andre, Associate Director, Automation, and
+ Judith A. Zidar, Coordinator, National Agricultural Text
+ Digitizing Program (NATDP), National Agricultural Library
+ (NAL)
+ Donald J. Waters, Head, Systems Office, Yale University Library
+
+ B) Special Problems:
+ Bound volumes
+ Conservation
+ Reproducing printed halftones
+
+ Carl Fleischhauer, Coordinator, American Memory, Library of
+ Congress
+ George Thoma, Chief, Communications Engineering Branch,
+ National Library of Medicine (NLM)
+
+10:30-
+11:00 AM Break
+
+11:00 AM Session IV. Image Capture, Text Capture, Overview of Text and
+ Image Storage Formats (Cont'd.).
+
+ C) Image Standards and Implications for Preservation
+
+ Jean Baronas, Senior Manager, Department of Standards and
+ Technology, Association for Information and Image Management
+ (AIIM)
+ Patricia Battin, President, The Commission on Preservation and
+ Access (CPA)
+
+ D) Text Conversion:
+ OCR vs. rekeying
+ Standards of accuracy and use of imperfect texts
+ Service bureaus
+
+ Stuart Weibel, Senior Research Specialist, Online Computer
+ Library Center, Inc. (OCLC)
+ Michael Lesk, Executive Director, Computer Science Research,
+ Bellcore
+ Ricky Erway, Associate Coordinator, American Memory, Library of
+ Congress
+ Pamela Q.J. Andre, Associate Director, Automation, and
+ Judith A. Zidar, Coordinator, National Agricultural Text
+ Digitizing Program (NATDP), National Agricultural Library
+ (NAL)
+
+12:30-
+1:30 PM Lunch
+
+1:30 PM Session V. Approaches to Preparing Electronic Texts.
+
+ Discussion of approaches to structuring text for the computer;
+ pros and cons of text coding, description of methods in
+ practice, and comparison of text-coding methods.
+
+ Moderator: Susan Hockey, Director, Center for Electronic Texts
+ in the Humanities (CETH), Rutgers and Princeton Universities
+ David Woodley Packard
+ C.M. Sperberg-McQueen, Editor, Text Encoding Initiative (TEI),
+ University of Illinois-Chicago
+ Eric M. Calaluca, Vice President, Chadwyck-Healey, Inc.
+
+3:30-
+4:00 PM Break
+
+4:00 PM Session VI. Copyright Issues.
+
+ Marybeth Peters, Policy Planning Adviser to the Register of
+ Copyrights, Library of Congress
+
+5:00 PM Session VII. Conclusion.
+
+ General discussion.
+ What topics were omitted or given short shrift that anyone
+ would like to talk about now?
+ Is there a "group" here? What should the group do next, if
+ anything? What should the Library of Congress do next, if
+ anything?
+ Moderator: Prosser Gifford, Director for Scholarly Programs,
+ Library of Congress
+
+6:00 PM Adjourn
+
+
+ *** *** *** ****** *** *** ***
+
+
+ Appendix II: ABSTRACTS
+
+
+SESSION I
+
+Avra MICHELSON Forecasting the Use of Electronic Texts by
+ Social Sciences and Humanities Scholars
+
+This presentation explores the ways in which electronic texts are likely
+to be used by the non-scientific scholarly community. Many of the
+remarks are drawn from a report the speaker coauthored with Jeff
+Rothenberg, a computer scientist at The RAND Corporation.
+
+The speaker assesses 1) current scholarly use of information technology
+and 2) the key trends in information technology most relevant to the
+research process, in order to predict how social sciences and humanities
+scholars are apt to use electronic texts. In introducing the topic,
+current use of electronic texts is explored broadly within the context of
+scholarly communication. From the perspective of scholarly
+communication, the work of humanities and social sciences scholars
+involves five processes: 1) identification of sources, 2) communication
+with colleagues, 3) interpretation and analysis of data, 4) dissemination
+of research findings, and 5) curriculum development and instruction. The
+extent to which computation currently permeates aspects of scholarly
+communication represents a viable indicator of the prospects for
+electronic texts.
+
+The discussion of current practice is balanced by an analysis of key
+trends in the scholarly use of information technology. These include the
+trends toward end-user computing and connectivity, which provide a
+framework for forecasting the use of electronic texts through this
+millennium. The presentation concludes with a summary of the ways in
+which the nonscientific scholarly community can be expected to use
+electronic texts, and the implications of that use for information
+providers.
+
+Susan VECCIA and Joanne FREEMAN Electronic Archives for the Public:
+ Use of American Memory in Public and
+ School Libraries
+
+This joint discussion focuses on nonscholarly applications of electronic
+library materials, specifically addressing use of the Library of Congress
+American Memory (AM) program in a small number of public and school
+libraries throughout the United States. AM consists of selected Library
+of Congress primary archival materials, stored on optical media
+(CD-ROM/videodisc), and presented with little or no editing. Many
+collections are accompanied by electronic introductions and user's guides
+offering background information and historical context. Collections
+represent a variety of formats including photographs, graphic arts,
+motion pictures, recorded sound, music, broadsides and manuscripts,
+books, and pamphlets.
+
+In 1991, the Library of Congress began a nationwide evaluation of AM in
+different types of institutions. Test sites include public libraries,
+elementary and secondary school libraries, college and university
+libraries, state libraries, and special libraries. Susan VECCIA and
+Joanne FREEMAN will discuss their observations on the use of AM by the
+nonscholarly community, using evidence gleaned from this ongoing
+evaluation effort.
+
+VECCIA will comment on the overall goals of the evaluation project, and
+the types of public and school libraries included in this study. Her
+comments on nonscholarly use of AM will focus on the public library as a
+cultural and community institution, often bridging the gap between formal
+and informal education. FREEMAN will discuss the use of AM in school
+libraries. Use by students and teachers has revealed some broad
+questions about the use of electronic resources, as well as definite
+benefits gained by the "nonscholar." Topics will include the problem of
+grasping content and context in an electronic environment, the stumbling
+blocks created by "new" technologies, and the unique skills and interests
+awakened through use of electronic resources.
+
+SESSION II
+
+Elli MYLONAS The Perseus Project: Interactive Sources and
+ Studies in Classical Greece
+
+The Perseus Project (5) has just released Perseus 1.0, the first publicly
+available version of its hypertextual database of multimedia materials on
+classical Greece. Perseus is designed to be used by a wide audience,
+comprised of readers at the student and scholar levels. As such, it must
+be able to locate information using different strategies, and it must
+contain enough detail to serve the different needs of its users. In
+addition, it must be delivered so that it is affordable to its target
+audience. [These problems and the solutions we chose are described in
+Mylonas, "An Interface to Classical Greek Civilization," JASIS 43:2,
+March 1992.]
+
+In order to achieve its objective, the project staff decided to make a
+conscious separation between selecting and converting textual, database,
+and image data on the one hand, and putting it into a delivery system on
+the other. That way, it is possible to create the electronic data
+without thinking about the restrictions of the delivery system. We have
+made a great effort to choose system-independent formats for our data,
+and to put as much thought and work as possible into structuring it so
+that the translation from paper to electronic form will enhance the value
+of the data. [A discussion of these solutions as of two years ago is in
+Elli Mylonas, Gregory Crane, Kenneth Morrell, and D. Neel Smith, "The
+Perseus Project: Data in the Electronic Age," in Accessing Antiquity:
+The Computerization of Classical Databases, J. Solomon and T. Worthen
+(eds.), University of Arizona Press, in press.]
+
+Much of the work on Perseus is focused on collecting and converting the
+data on which the project is based. At the same time, it is necessary to
+provide means of access to the information, in order to make it usable,
+and them to investigate how it is used. As we learn more about what
+students and scholars from different backgrounds do with Perseus, we can
+adjust our data collection, and also modify the system to accommodate
+them. In creating a delivery system for general use, we have tried to
+avoid favoring any one type of use by allowing multiple forms of access
+to and navigation through the system.
+
+The way text is handled exemplifies some of these principles. All text
+in Perseus is tagged using SGML, following the guidelines of the Text
+Encoding Initiative (TEI). This markup is used to index the text, and
+process it so that it can be imported into HyperCard. No SGML markup
+remains in the text that reaches the user, because currently it would be
+too expensive to create a system that acts on SGML in real time.
+However, the regularity provided by SGML is essential for verifying the
+content of the texts, and greatly speeds all the processing performed on
+them. The fact that the texts exist in SGML ensures that they will be
+relatively easy to port to different hardware and software, and so will
+outlast the current delivery platform. Finally, the SGML markup
+incorporates existing canonical reference systems (chapter, verse, line,
+etc.); indexing and navigation are based on these features. This ensures
+that the same canonical reference will always resolve to the same point
+within a text, and that all versions of our texts, regardless of delivery
+platform (even paper printouts) will function the same way.
+
+In order to provide tools for users, the text is processed by a
+morphological analyzer, and the results are stored in a database.
+Together with the index, the Greek-English Lexicon, and the index of all
+the English words in the definitions of the lexicon, the morphological
+analyses comprise a set of linguistic tools that allow users of all
+levels to work with the textual information, and to accomplish different
+tasks. For example, students who read no Greek may explore a concept as
+it appears in Greek texts by using the English-Greek index, and then
+looking up works in the texts and translations, or scholars may do
+detailed morphological studies of word use by using the morphological
+analyses of the texts. Because these tools were not designed for any one
+use, the same tools and the same data can be used by both students and
+scholars.
+
+NOTES:
+ (5) Perseus is based at Harvard University, with collaborators at
+ several other universities. The project has been funded primarily
+ by the Annenberg/CPB Project, as well as by Harvard University,
+ Apple Computer, and others. It is published by Yale University
+ Press. Perseus runs on Macintosh computers, under the HyperCard
+ program.
+
+Eric CALALUCA
+
+Chadwyck-Healey embarked last year on two distinct yet related full-text
+humanities database projects.
+
+The English Poetry Full-Text Database and the Patrologia Latina Database
+represent new approaches to linguistic research resources. The size and
+complexity of the projects present problems for electronic publishers,
+but surmountable ones if they remain abreast of the latest possibilities
+in data capture and retrieval software techniques.
+
+The issues which required address prior to the commencement of the
+projects were legion:
+
+ 1. Editorial selection (or exclusion) of materials in each
+ database
+
+ 2. Deciding whether or not to incorporate a normative encoding
+ structure into the databases?
+ A. If one is selected, should it be SGML?
+ B. If SGML, then the TEI?
+
+ 3. Deliver as CD-ROM, magnetic tape, or both?
+
+ 4. Can one produce retrieval software advanced enough for the
+ postdoctoral linguist, yet accessible enough for unattended
+ general use? Should one try?
+
+ 5. Re fair and liberal networking policies, what are the risks to
+ an electronic publisher?
+
+ 6. How does the emergence of national and international education
+ networks affect the use and viability of research projects
+ requiring high investment? Do the new European Community
+ directives concerning database protection necessitate two
+ distinct publishing projects, one for North America and one for
+ overseas?
+
+From new notions of "scholarly fair use" to the future of optical media,
+virtually every issue related to electronic publishing was aired. The
+result is two projects which have been constructed to provide the quality
+research resources with the fewest encumbrances to use by teachers and
+private scholars.
+
+Dorothy TWOHIG
+
+In spring 1988 the editors of the papers of George Washington, John
+Adams, Thomas Jefferson, James Madison, and Benjamin Franklin were
+approached by classics scholar David Packard on behalf of the Packard
+Humanities Foundation with a proposal to produce a CD-ROM edition of the
+complete papers of each of the Founding Fathers. This electronic edition
+will supplement the published volumes, making the documents widely
+available to students and researchers at reasonable cost. We estimate
+that our CD-ROM edition of Washington's Papers will be substantially
+completed within the next two years and ready for publication. Within
+the next ten years or so, similar CD-ROM editions of the Franklin, Adams,
+Jefferson, and Madison papers also will be available. At the Library of
+Congress's session on technology, I would like to discuss not only the
+experience of the Washington Papers in producing the CD-ROM edition, but
+the impact technology has had on these major editorial projects.
+Already, we are editing our volumes with an eye to the material that will
+be readily available in the CD-ROM edition. The completed electronic
+edition will provide immense possibilities for the searching of documents
+for information in a way never possible before. The kind of technical
+innovations that are currently available and on the drawing board will
+soon revolutionize historical research and the production of historical
+documents. Unfortunately, much of this new technology is not being used
+in the planning stages of historical projects, simply because many
+historians are aware only in the vaguest way of its existence. At least
+two major new historical editing projects are considering microfilm
+editions, simply because they are not aware of the possibilities of
+electronic alternatives and the advantages of the new technology in terms
+of flexibility and research potential compared to microfilm. In fact,
+too many of us in history and literature are still at the stage of
+struggling with our PCs. There are many historical editorial projects in
+progress presently, and an equal number of literary projects. While the
+two fields have somewhat different approaches to textual editing, there
+are ways in which electronic technology can be of service to both.
+
+Since few of the editors involved in the Founding Fathers CD-ROM editions
+are technical experts in any sense, I hope to point out in my discussion
+of our experience how many of these electronic innovations can be used
+successfully by scholars who are novices in the world of new technology.
+One of the major concerns of the sponsors of the multitude of new
+scholarly editions is the limited audience reached by the published
+volumes. Most of these editions are being published in small quantities
+and the publishers' price for them puts them out of the reach not only of
+individual scholars but of most public libraries and all but the largest
+educational institutions. However, little attention is being given to
+ways in which technology can bypass conventional publication to make
+historical and literary documents more widely available.
+
+What attracted us most to the CD-ROM edition of The Papers of George
+Washington was the fact that David Packard's aim was to make a complete
+edition of all of the 135,000 documents we have collected available in an
+inexpensive format that would be placed in public libraries, small
+colleges, and even high schools. This would provide an audience far
+beyond our present 1,000-copy, $45 published edition. Since the CD-ROM
+edition will carry none of the explanatory annotation that appears in the
+published volumes, we also feel that the use of the CD-ROM will lead many
+researchers to seek out the published volumes.
+
+In addition to ignorance of new technical advances, I have found that too
+many editors--and historians and literary scholars--are resistant and
+even hostile to suggestions that electronic technology may enhance their
+work. I intend to discuss some of the arguments traditionalists are
+advancing to resist technology, ranging from distrust of the speed with
+which it changes (we are already wondering what is out there that is
+better than CD-ROM) to suspicion of the technical language used to
+describe electronic developments.
+
+Maria LEBRON
+
+The Online Journal of Current Clinical Trials, a joint venture of the
+American Association for the Advancement of Science (AAAS) and the Online
+Computer Library Center, Inc. (OCLC), is the first peer-reviewed journal
+to provide full text, tabular material, and line illustrations on line.
+This presentation will discuss the genesis and start-up period of the
+journal. Topics of discussion will include historical overview,
+day-to-day management of the editorial peer review, and manuscript
+tagging and publication. A demonstration of the journal and its features
+will accompany the presentation.
+
+Lynne PERSONIUS
+
+Cornell University Library, Cornell Information Technologies, and Xerox
+Corporation, with the support of the Commission on Preservation and
+Access, and Sun Microsystems, Inc., have been collaborating in a project
+to test a prototype system for recording brittle books as digital images
+and producing, on demand, high-quality archival paper replacements. The
+project goes beyond that, however, to investigate some of the issues
+surrounding scanning, storing, retrieving, and providing access to
+digital images in a network environment.
+
+The Joint Study in Digital Preservation began in January 1990. Xerox
+provided the College Library Access and Storage System (CLASS) software,
+a prototype 600-dots-per-inch (dpi) scanner, and the hardware necessary
+to support network printing on the DocuTech printer housed in Cornell's
+Computing and Communications Center (CCC).
+
+The Cornell staff using the hardware and software became an integral part
+of the development and testing process for enhancements to the CLASS
+software system. The collaborative nature of this relationship is
+resulting in a system that is specifically tailored to the preservation
+application.
+
+A digital library of 1,000 volumes (or approximately 300,000 images) has
+been created and is stored on an optical jukebox that resides in CCC.
+The library includes a collection of select mathematics monographs that
+provides mathematics faculty with an opportunity to use the electronic
+library. The remaining volumes were chosen for the library to test the
+various capabilities of the scanning system.
+
+One project objective is to provide users of the Cornell library and the
+library staff with the ability to request facsimiles of digitized images
+or to retrieve the actual electronic image for browsing. A prototype
+viewing workstation has been created by Xerox, with input into the design
+by a committee of Cornell librarians and computer professionals. This
+will allow us to experiment with patron access to the images that make up
+the digital library. The viewing station provides search, retrieval, and
+(ultimately) printing functions with enhancements to facilitate
+navigation through multiple documents.
+
+Cornell currently is working to extend access to the digital library to
+readers using workstations from their offices. This year is devoted to
+the development of a network resident image conversion and delivery
+server, and client software that will support readers who use Apple
+Macintosh computers, IBM windows platforms, and Sun workstations.
+Equipment for this development was provided by Sun Microsystems with
+support from the Commission on Preservation and Access.
+
+During the show-and-tell session of the Workshop on Electronic Texts, a
+prototype view station will be demonstrated. In addition, a display of
+original library books that have been digitized will be available for
+review with associated printed copies for comparison. The fifteen-minute
+overview of the project will include a slide presentation that
+constitutes a "tour" of the preservation digitizing process.
+
+The final network-connected version of the viewing station will provide
+library users with another mechanism for accessing the digital library,
+and will also provide the capability of viewing images directly. This
+will not require special software, although a powerful computer with good
+graphics will be needed.
+
+The Joint Study in Digital Preservation has generated a great deal of
+interest in the library community. Unfortunately, or perhaps
+fortunately, this project serves to raise a vast number of other issues
+surrounding the use of digital technology for the preservation and use of
+deteriorating library materials, which subsequent projects will need to
+examine. Much work remains.
+
+SESSION III
+
+Howard BESSER Networking Multimedia Databases
+
+What do we have to consider in building and distributing databases of
+visual materials in a multi-user environment? This presentation examines
+a variety of concerns that need to be addressed before a multimedia
+database can be set up in a networked environment.
+
+In the past it has not been feasible to implement databases of visual
+materials in shared-user environments because of technological barriers.
+Each of the two basic models for multi-user multimedia databases has
+posed its own problem. The analog multimedia storage model (represented
+by Project Athena's parallel analog and digital networks) has required an
+incredibly complex (and expensive) infrastructure. The economies of
+scale that make multi-user setups cheaper per user served do not operate
+in an environment that requires a computer workstation, videodisc player,
+and two display devices for each user.
+
+The digital multimedia storage model has required vast amounts of storage
+space (as much as one gigabyte per thirty still images). In the past the
+cost of such a large amount of storage space made this model a
+prohibitive choice as well. But plunging storage costs are finally
+making this second alternative viable.
+
+If storage no longer poses such an impediment, what do we need to
+consider in building digitally stored multi-user databases of visual
+materials? This presentation will examine the networking and
+telecommunication constraints that must be overcome before such databases
+can become commonplace and useful to a large number of people.
+
+The key problem is the vast size of multimedia documents, and how this
+affects not only storage but telecommunications transmission time.
+Anything slower than T-1 speed is impractical for files of 1 megabyte or
+larger (which is likely to be small for a multimedia document). For
+instance, even on a 56 Kb line it would take three minutes to transfer a
+1-megabyte file. And these figures assume ideal circumstances, and do
+not take into consideration other users contending for network bandwidth,
+disk access time, or the time needed for remote display. Current common
+telephone transmission rates would be completely impractical; few users
+would be willing to wait the hour necessary to transmit a single image at
+2400 baud.
+
+This necessitates compression, which itself raises a number of other
+issues. In order to decrease file sizes significantly, we must employ
+lossy compression algorithms. But how much quality can we afford to
+lose? To date there has been only one significant study done of
+image-quality needs for a particular user group, and this study did not
+look at loss resulting from compression. Only after identifying
+image-quality needs can we begin to address storage and network bandwidth
+needs.
+
+Experience with X-Windows-based applications (such as Imagequery, the
+University of California at Berkeley image database) demonstrates the
+utility of a client-server topology, but also points to the limitation of
+current software for a distributed environment. For example,
+applications like Imagequery can incorporate compression, but current X
+implementations do not permit decompression at the end user's
+workstation. Such decompression at the host computer alleviates storage
+capacity problems while doing nothing to address problems of
+telecommunications bandwidth.
+
+We need to examine the effects on network through-put of moving
+multimedia documents around on a network. We need to examine various
+topologies that will help us avoid bottlenecks around servers and
+gateways. Experience with applications such as these raise still broader
+questions. How closely is the multimedia document tied to the software
+for viewing it? Can it be accessed and viewed from other applications?
+Experience with the MARC format (and more recently with the Z39.50
+protocols) shows how useful it can be to store documents in a form in
+which they can be accessed by a variety of application software.
+
+Finally, from an intellectual-access standpoint, we need to address the
+issue of providing access to these multimedia documents in
+interdisciplinary environments. We need to examine terminology and
+indexing strategies that will allow us to provide access to this material
+in a cross-disciplinary way.
+
+Ronald LARSEN Directions in High-Performance Networking for
+ Libraries
+
+The pace at which computing technology has advanced over the past forty
+years shows no sign of abating. Roughly speaking, each five-year period
+has yielded an order-of-magnitude improvement in price and performance of
+computing equipment. No fundamental hurdles are likely to prevent this
+pace from continuing for at least the next decade. It is only in the
+past five years, though, that computing has become ubiquitous in
+libraries, affecting all staff and patrons, directly or indirectly.
+
+During these same five years, communications rates on the Internet, the
+principal academic computing network, have grown from 56 kbps to 1.5
+Mbps, and the NSFNet backbone is now running 45 Mbps. Over the next five
+years, communication rates on the backbone are expected to exceed 1 Gbps.
+Growth in both the population of network users and the volume of network
+traffic has continued to grow geometrically, at rates approaching 15
+percent per month. This flood of capacity and use, likened by some to
+"drinking from a firehose," creates immense opportunities and challenges
+for libraries. Libraries must anticipate the future implications of this
+technology, participate in its development, and deploy it to ensure
+access to the world's information resources.
+
+The infrastructure for the information age is being put in place.
+Libraries face strategic decisions about their role in the development,
+deployment, and use of this infrastructure. The emerging infrastructure
+is much more than computers and communication lines. It is more than the
+ability to compute at a remote site, send electronic mail to a peer
+across the country, or move a file from one library to another. The next
+five years will witness substantial development of the information
+infrastructure of the network.
+
+In order to provide appropriate leadership, library professionals must
+have a fundamental understanding of and appreciation for computer
+networking, from local area networks to the National Research and
+Education Network (NREN). This presentation addresses these
+fundamentals, and how they relate to libraries today and in the near
+future.
+
+Edwin BROWNRIGG Electronic Library Visions and Realities
+
+The electronic library has been a vision desired by many--and rejected by
+some--since Vannevar Bush coined the term memex to describe an automated,
+intelligent, personal information system. Variations on this vision have
+included Ted Nelson's Xanadau, Alan Kay's Dynabook, and Lancaster's
+"paperless library," with the most recent incarnation being the
+"Knowledge Navigator" described by John Scully of Apple. But the reality
+of library service has been less visionary and the leap to the electronic
+library has eluded universities, publishers, and information technology
+files.
+
+The Memex Research Institute (MemRI), an independent, nonprofit research
+and development organization, has created an Electronic Library Program
+of shared research and development in order to make the collective vision
+more concrete. The program is working toward the creation of large,
+indexed publicly available electronic image collections of published
+documents in academic, special, and public libraries. This strategic
+plan is the result of the first stage of the program, which has been an
+investigation of the information technologies available to support such
+an effort, the economic parameters of electronic service compared to
+traditional library operations, and the business and political factors
+affecting the shift from print distribution to electronic networked
+access.
+
+The strategic plan envisions a combination of publicly searchable access
+databases, image (and text) document collections stored on network "file
+servers," local and remote network access, and an intellectual property
+management-control system. This combination of technology and
+information content is defined in this plan as an E-library or E-library
+collection. Some participating sponsors are already developing projects
+based on MemRI's recommended directions.
+
+The E-library strategy projected in this plan is a visionary one that can
+enable major changes and improvements in academic, public, and special
+library service. This vision is, though, one that can be realized with
+today's technology. At the same time, it will challenge the political
+and social structure within which libraries operate: in academic
+libraries, the traditional emphasis on local collections, extending to
+accreditation issues; in public libraries, the potential of electronic
+branch and central libraries fully available to the public; and for
+special libraries, new opportunities for shared collections and networks.
+
+The environment in which this strategic plan has been developed is, at
+the moment, dominated by a sense of library limits. The continued
+expansion and rapid growth of local academic library collections is now
+clearly at an end. Corporate libraries, and even law libraries, are
+faced with operating within a difficult economic climate, as well as with
+very active competition from commercial information sources. For
+example, public libraries may be seen as a desirable but not critical
+municipal service in a time when the budgets of safety and health
+agencies are being cut back.
+
+Further, libraries in general have a very high labor-to-cost ratio in
+their budgets, and labor costs are still increasing, notwithstanding
+automation investments. It is difficult for libraries to obtain capital,
+startup, or seed funding for innovative activities, and those
+technology-intensive initiatives that offer the potential of decreased
+labor costs can provoke the opposition of library staff.
+
+However, libraries have achieved some considerable successes in the past
+two decades by improving both their service and their credibility within
+their organizations--and these positive changes have been accomplished
+mostly with judicious use of information technologies. The advances in
+computing and information technology have been well-chronicled: the
+continuing precipitous drop in computing costs, the growth of the
+Internet and private networks, and the explosive increase in publicly
+available information databases.
+
+For example, OCLC has become one of the largest computer network
+organizations in the world by creating a cooperative cataloging network
+of more than 6,000 libraries worldwide. On-line public access catalogs
+now serve millions of users on more than 50,000 dedicated terminals in
+the United States alone. The University of California MELVYL on-line
+catalog system has now expanded into an index database reference service
+and supports more than six million searches a year. And, libraries have
+become the largest group of customers of CD-ROM publishing technology;
+more than 30,000 optical media publications such as those offered by
+InfoTrac and Silver Platter are subscribed to by U.S. libraries.
+
+This march of technology continues and in the next decade will result in
+further innovations that are extremely difficult to predict. What is
+clear is that libraries can now go beyond automation of their order files
+and catalogs to automation of their collections themselves--and it is
+possible to circumvent the fiscal limitations that appear to obtain
+today.
+
+This Electronic Library Strategic Plan recommends a paradigm shift in
+library service, and demonstrates the steps necessary to provide improved
+library services with limited capacities and operating investments.
+
+SESSION IV-A
+
+Anne KENNEY
+
+The Cornell/Xerox Joint Study in Digital Preservation resulted in the
+recording of 1,000 brittle books as 600-dpi digital images and the
+production, on demand, of high-quality and archivally sound paper
+replacements. The project, which was supported by the Commission on
+Preservation and Access, also investigated some of the issues surrounding
+scanning, storing, retrieving, and providing access to digital images in
+a network environment.
+
+Anne Kenney will focus on some of the issues surrounding direct scanning
+as identified in the Cornell Xerox Project. Among those to be discussed
+are: image versus text capture; indexing and access; image-capture
+capabilities; a comparison to photocopy and microfilm; production and
+cost analysis; storage formats, protocols, and standards; and the use of
+this scanning technology for preservation purposes.
+
+The 600-dpi digital images produced in the Cornell Xerox Project proved
+highly acceptable for creating paper replacements of deteriorating
+originals. The 1,000 scanned volumes provided an array of image-capture
+challenges that are common to nineteenth-century printing techniques and
+embrittled material, and that defy the use of text-conversion processes.
+These challenges include diminished contrast between text and background,
+fragile and deteriorated pages, uneven printing, elaborate type faces,
+faint and bold text adjacency, handwritten text and annotations, nonRoman
+languages, and a proliferation of illustrated material embedded in text.
+The latter category included high-frequency and low-frequency halftones,
+continuous tone photographs, intricate mathematical drawings, maps,
+etchings, reverse-polarity drawings, and engravings.
+
+The Xerox prototype scanning system provided a number of important
+features for capturing this diverse material. Technicians used multiple
+threshold settings, filters, line art and halftone definitions,
+autosegmentation, windowing, and software-editing programs to optimize
+image capture. At the same time, this project focused on production.
+The goal was to make scanning as affordable and acceptable as
+photocopying and microfilming for preservation reformatting. A
+time-and-cost study conducted during the last three months of this
+project confirmed the economic viability of digital scanning, and these
+findings will be discussed here.
+
+From the outset, the Cornell Xerox Project was predicated on the use of
+nonproprietary standards and the use of common protocols when standards
+did not exist. Digital files were created as TIFF images which were
+compressed prior to storage using Group 4 CCITT compression. The Xerox
+software is MS DOS based and utilizes off-the shelf programs such as
+Microsoft Windows and Wang Image Wizard. The digital library is designed
+to be hardware-independent and to provide interchangeability with other
+institutions through network connections. Access to the digital files
+themselves is two-tiered: Bibliographic records for the computer files
+are created in RLIN and Cornell's local system and access into the actual
+digital images comprising a book is provided through a document control
+structure and a networked image file-server, both of which will be
+described.
+
+The presentation will conclude with a discussion of some of the issues
+surrounding the use of this technology as a preservation tool (storage,
+refreshing, backup).
+
+Pamela ANDRE and Judith ZIDAR
+
+The National Agricultural Library (NAL) has had extensive experience with
+raster scanning of printed materials. Since 1987, the Library has
+participated in the National Agricultural Text Digitizing Project (NATDP)
+a cooperative effort between NAL and forty-five land grant university
+libraries. An overview of the project will be presented, giving its
+history and NAL's strategy for the future.
+
+An in-depth discussion of NATDP will follow, including a description of
+the scanning process, from the gathering of the printed materials to the
+archiving of the electronic pages. The type of equipment required for a
+stand-alone scanning workstation and the importance of file management
+software will be discussed. Issues concerning the images themselves will
+be addressed briefly, such as image format; black and white versus color;
+gray scale versus dithering; and resolution.
+
+Also described will be a study currently in progress by NAL to evaluate
+the usefulness of converting microfilm to electronic images in order to
+improve access. With the cooperation of Tuskegee University, NAL has
+selected three reels of microfilm from a collection of sixty-seven reels
+containing the papers, letters, and drawings of George Washington Carver.
+The three reels were converted into 3,500 electronic images using a
+specialized microfilm scanner. The selection, filming, and indexing of
+this material will be discussed.
+
+Donald WATERS
+
+Project Open Book, the Yale University Library's effort to convert 10,
+000 books from microfilm to digital imagery, is currently in an advanced
+state of planning and organization. The Yale Library has selected a
+major vendor to serve as a partner in the project and as systems
+integrator. In its proposal, the successful vendor helped isolate areas
+of risk and uncertainty as well as key issues to be addressed during the
+life of the project. The Yale Library is now poised to decide what
+material it will convert to digital image form and to seek funding,
+initially for the first phase and then for the entire project.
+
+The proposal that Yale accepted for the implementation of Project Open
+Book will provide at the end of three phases a conversion subsystem,
+browsing stations distributed on the campus network within the Yale
+Library, a subsystem for storing 10,000 books at 200 and 600 dots per
+inch, and network access to the image printers. Pricing for the system
+implementation assumes the existence of Yale's campus ethernet network
+and its high-speed image printers, and includes other requisite hardware
+and software, as well as system integration services. Proposed operating
+costs include hardware and software maintenance, but do not include
+estimates for the facilities management of the storage devices and image
+servers.
+
+Yale selected its vendor partner in a formal process, partly funded by
+the Commission for Preservation and Access. Following a request for
+proposal, the Yale Library selected two vendors as finalists to work with
+Yale staff to generate a detailed analysis of requirements for Project
+Open Book. Each vendor used the results of the requirements analysis to
+generate and submit a formal proposal for the entire project. This
+competitive process not only enabled the Yale Library to select its
+primary vendor partner but also revealed much about the state of the
+imaging industry, about the varying, corporate commitments to the markets
+for imaging technology, and about the varying organizational dynamics
+through which major companies are responding to and seeking to develop
+these markets.
+
+Project Open Book is focused specifically on the conversion of images
+from microfilm to digital form. The technology for scanning microfilm is
+readily available but is changing rapidly. In its project requirements,
+the Yale Library emphasized features of the technology that affect the
+technical quality of digital image production and the costs of creating
+and storing the image library: What levels of digital resolution can be
+achieved by scanning microfilm? How does variation in the quality of
+microfilm, particularly in film produced to preservation standards,
+affect the quality of the digital images? What technologies can an
+operator effectively and economically apply when scanning film to
+separate two-up images and to control for and correct image
+imperfections? How can quality control best be integrated into
+digitizing work flow that includes document indexing and storage?
+
+The actual and expected uses of digital images--storage, browsing,
+printing, and OCR--help determine the standards for measuring their
+quality. Browsing is especially important, but the facilities available
+for readers to browse image documents is perhaps the weakest aspect of
+imaging technology and most in need of development. As it defined its
+requirements, the Yale Library concentrated on some fundamental aspects
+of usability for image documents: Does the system have sufficient
+flexibility to handle the full range of document types, including
+monographs, multi-part and multivolume sets, and serials, as well as
+manuscript collections? What conventions are necessary to identify a
+document uniquely for storage and retrieval? Where is the database of
+record for storing bibliographic information about the image document?
+How are basic internal structures of documents, such as pagination, made
+accessible to the reader? How are the image documents physically
+presented on the screen to the reader?
+
+The Yale Library designed Project Open Book on the assumption that
+microfilm is more than adequate as a medium for preserving the content of
+deteriorated library materials. As planning in the project has advanced,
+it is increasingly clear that the challenge of digital image technology
+and the key to the success of efforts like Project Open Book is to
+provide a means of both preserving and improving access to those
+deteriorated materials.
+
+SESSION IV-B
+
+George THOMA
+
+In the use of electronic imaging for document preservation, there are
+several issues to consider, such as: ensuring adequate image quality,
+maintaining substantial conversion rates (through-put), providing unique
+identification for automated access and retrieval, and accommodating
+bound volumes and fragile material.
+
+To maintain high image quality, image processing functions are required
+to correct the deficiencies in the scanned image. Some commercially
+available systems include these functions, while some do not. The
+scanned raw image must be processed to correct contrast deficiencies--
+both poor overall contrast resulting from light print and/or dark
+background, and variable contrast resulting from stains and
+bleed-through. Furthermore, the scan density must be adequate to allow
+legibility of print and sufficient fidelity in the pseudo-halftoned gray
+material. Borders or page-edge effects must be removed for both
+compactibility and aesthetics. Page skew must be corrected for aesthetic
+reasons and to enable accurate character recognition if desired.
+Compound images consisting of both two-toned text and gray-scale
+illustrations must be processed appropriately to retain the quality of
+each.
+
+SESSION IV-C
+
+Jean BARONAS
+
+Standards publications being developed by scientists, engineers, and
+business managers in Association for Information and Image Management
+(AIIM) standards committees can be applied to electronic image management
+(EIM) processes including: document (image) transfer, retrieval and
+evaluation; optical disk and document scanning; and document design and
+conversion. When combined with EIM system planning and operations,
+standards can assist in generating image databases that are
+interchangeable among a variety of systems. The applications of
+different approaches for image-tagging, indexing, compression, and
+transfer often cause uncertainty concerning EIM system compatibility,
+calibration, performance, and upward compatibility, until standard
+implementation parameters are established. The AIIM standards that are
+being developed for these applications can be used to decrease the
+uncertainty, successfully integrate imaging processes, and promote "open
+systems." AIIM is an accredited American National Standards Institute
+(ANSI) standards developer with more than twenty committees comprised of
+300 volunteers representing users, vendors, and manufacturers. The
+standards publications that are developed in these committees have
+national acceptance and provide the basis for international harmonization
+in the development of new International Organization for Standardization
+(ISO) standards.
+
+This presentation describes the development of AIIM's EIM standards and a
+new effort at AIIM, a database on standards projects in a wide framework
+of imaging industries including capture, recording, processing,
+duplication, distribution, display, evaluation, and preservation. The
+AIIM Imagery Database will cover imaging standards being developed by
+many organizations in many different countries. It will contain
+standards publications' dates, origins, related national and
+international projects, status, key words, and abstracts. The ANSI Image
+Technology Standards Board requested that such a database be established,
+as did the ISO/International Electrotechnical Commission Joint Task Force
+on Imagery. AIIM will take on the leadership role for the database and
+coordinate its development with several standards developers.
+
+Patricia BATTIN
+
+ Characteristics of standards for digital imagery:
+
+ * Nature of digital technology implies continuing volatility.
+
+ * Precipitous standard-setting not possible and probably not
+ desirable.
+
+ * Standards are a complex issue involving the medium, the
+ hardware, the software, and the technical capacity for
+ reproductive fidelity and clarity.
+
+ * The prognosis for reliable archival standards (as defined by
+ librarians) in the foreseeable future is poor.
+
+ Significant potential and attractiveness of digital technology as a
+ preservation medium and access mechanism.
+
+ Productive use of digital imagery for preservation requires a
+ reconceptualizing of preservation principles in a volatile,
+ standardless world.
+
+ Concept of managing continuing access in the digital environment
+ rather than focusing on the permanence of the medium and long-term
+ archival standards developed for the analog world.
+
+ Transition period: How long and what to do?
+
+ * Redefine "archival."
+
+ * Remove the burden of "archival copy" from paper artifacts.
+
+ * Use digital technology for storage, develop management
+ strategies for refreshing medium, hardware and software.
+
+ * Create acid-free paper copies for transition period backup
+ until we develop reliable procedures for ensuring continuing
+ access to digital files.
+
+SESSION IV-D
+
+Stuart WEIBEL The Role of SGML Markup in the CORE Project (6)
+
+The emergence of high-speed telecommunications networks as a basic
+feature of the scholarly workplace is driving the demand for electronic
+document delivery. Three distinct categories of electronic
+publishing/republishing are necessary to support access demands in this
+emerging environment:
+
+ 1.) Conversion of paper or microfilm archives to electronic format
+ 2.) Conversion of electronic files to formats tailored to
+ electronic retrieval and display
+ 3.) Primary electronic publishing (materials for which the
+ electronic version is the primary format)
+
+OCLC has experimental or product development activities in each of these
+areas. Among the challenges that lie ahead is the integration of these
+three types of information stores in coherent distributed systems.
+
+The CORE (Chemistry Online Retrieval Experiment) Project is a model for
+the conversion of large text and graphics collections for which
+electronic typesetting files are available (category 2). The American
+Chemical Society has made available computer typography files dating from
+1980 for its twenty journals. This collection of some 250 journal-years
+is being converted to an electronic format that will be accessible
+through several end-user applications.
+
+The use of Standard Generalized Markup Language (SGML) offers the means
+to capture the structural richness of the original articles in a way that
+will support a variety of retrieval, navigation, and display options
+necessary to navigate effectively in very large text databases.
+
+An SGML document consists of text that is marked up with descriptive tags
+that specify the function of a given element within the document. As a
+formal language construct, an SGML document can be parsed against a
+document-type definition (DTD) that unambiguously defines what elements
+are allowed and where in the document they can (or must) occur. This
+formalized map of article structure allows the user interface design to
+be uncoupled from the underlying database system, an important step
+toward interoperability. Demonstration of this separability is a part of
+the CORE project, wherein user interface designs born of very different
+philosophies will access the same database.
+
+NOTES:
+ (6) The CORE project is a collaboration among Cornell University's
+ Mann Library, Bell Communications Research (Bellcore), the American
+ Chemical Society (ACS), the Chemical Abstracts Service (CAS), and
+ OCLC.
+
+Michael LESK The CORE Electronic Chemistry Library
+
+A major on-line file of chemical journal literature complete with
+graphics is being developed to test the usability of fully electronic
+access to documents, as a joint project of Cornell University, the
+American Chemical Society, the Chemical Abstracts Service, OCLC, and
+Bellcore (with additional support from Sun Microsystems, Springer-Verlag,
+DigitaI Equipment Corporation, Sony Corporation of America, and Apple
+Computers). Our file contains the American Chemical Society's on-line
+journals, supplemented with the graphics from the paper publication. The
+indexing of the articles from Chemical Abstracts Documents is available
+in both image and text format, and several different interfaces can be
+used. Our goals are (1) to assess the effectiveness and acceptability of
+electronic access to primary journals as compared with paper, and (2) to
+identify the most desirable functions of the user interface to an
+electronic system of journals, including in particular a comparison of
+page-image display with ASCII display interfaces. Early experiments with
+chemistry students on a variety of tasks suggest that searching tasks are
+completed much faster with any electronic system than with paper, but
+that for reading all versions of the articles are roughly equivalent.
+
+Pamela ANDRE and Judith ZIDAR
+
+Text conversion is far more expensive and time-consuming than image
+capture alone. NAL's experience with optical character recognition (OCR)
+will be related and compared with the experience of having text rekeyed.
+What factors affect OCR accuracy? How accurate does full text have to be
+in order to be useful? How do different users react to imperfect text?
+These are questions that will be explored. For many, a service bureau
+may be a better solution than performing the work inhouse; this will also
+be discussed.
+
+SESSION VI
+
+Marybeth PETERS
+
+Copyright law protects creative works. Protection granted by the law to
+authors and disseminators of works includes the right to do or authorize
+the following: reproduce the work, prepare derivative works, distribute
+the work to the public, and publicly perform or display the work. In
+addition, copyright owners of sound recordings and computer programs have
+the right to control rental of their works. These rights are not
+unlimited; there are a number of exceptions and limitations.
+
+An electronic environment places strains on the copyright system.
+Copyright owners want to control uses of their work and be paid for any
+use; the public wants quick and easy access at little or no cost. The
+marketplace is working in this area. Contracts, guidelines on electronic
+use, and collective licensing are in use and being refined.
+
+Issues concerning the ability to change works without detection are more
+difficult to deal with. Questions concerning the integrity of the work
+and the status of the changed version under the copyright law are to be
+addressed. These are public policy issues which require informed
+dialogue.
+
+
+ *** *** *** ****** *** *** ***
+
+
+ Appendix III: DIRECTORY OF PARTICIPANTS
+
+
+PRESENTERS:
+
+ Pamela Q.J. Andre
+ Associate Director, Automation
+ National Agricultural Library
+ 10301 Baltimore Boulevard
+ Beltsville, MD 20705-2351
+ Phone: (301) 504-6813
+ Fax: (301) 504-7473
+ E-mail: INTERNET: PANDRE@ASRR.ARSUSDA.GOV
+
+ Jean Baronas, Senior Manager
+ Department of Standards and Technology
+ Association for Information and Image Management (AIIM)
+ 1100 Wayne Avenue, Suite 1100
+ Silver Spring, MD 20910
+ Phone: (301) 587-8202
+ Fax: (301) 587-2711
+
+ Patricia Battin, President
+ The Commission on Preservation and Access
+ 1400 16th Street, N.W.
+ Suite 740
+ Washington, DC 20036-2217
+ Phone: (202) 939-3400
+ Fax: (202) 939-3407
+ E-mail: CPA@GWUVM.BITNET
+
+ Howard Besser
+ Centre Canadien d'Architecture
+ (Canadian Center for Architecture)
+ 1920, rue Baile
+ Montreal, Quebec H3H 2S6
+ CANADA
+ Phone: (514) 939-7001
+ Fax: (514) 939-7020
+ E-mail: howard@lis.pitt.edu
+
+ Edwin B. Brownrigg, Executive Director
+ Memex Research Institute
+ 422 Bonita Avenue
+ Roseville, CA 95678
+ Phone: (916) 784-2298
+ Fax: (916) 786-7559
+ E-mail: BITNET: MEMEX@CALSTATE.2
+
+ Eric M. Calaluca, Vice President
+ Chadwyck-Healey, Inc.
+ 1101 King Street
+ Alexandria, VA 223l4
+ Phone: (800) 752-05l5
+ Fax: (703) 683-7589
+
+ James Daly
+ 4015 Deepwood Road
+ Baltimore, MD 21218-1404
+ Phone: (410) 235-0763
+
+ Ricky Erway, Associate Coordinator
+ American Memory
+ Library of Congress
+ Phone: (202) 707-6233
+ Fax: (202) 707-3764
+
+ Carl Fleischhauer, Coordinator
+ American Memory
+ Library of Congress
+ Phone: (202) 707-6233
+ Fax: (202) 707-3764
+
+ Joanne Freeman
+ 2000 Jefferson Park Avenue, No. 7
+ Charlottesville, VA 22903
+
+ Prosser Gifford
+ Director for Scholarly Programs
+ Library of Congress
+ Phone: (202) 707-1517
+ Fax: (202) 707-9898
+ E-mail: pgif@seq1.loc.gov
+
+ Jacqueline Hess, Director
+ National Demonstration Laboratory
+ for Interactive Information Technologies
+ Library of Congress
+ Phone: (202) 707-4157
+ Fax: (202) 707-2829
+
+ Susan Hockey, Director
+ Center for Electronic Texts in the Humanities (CETH)
+ Alexander Library
+ Rutgers University
+ 169 College Avenue
+ New Brunswick, NJ 08903
+ Phone: (908) 932-1384
+ Fax: (908) 932-1386
+ E-mail: hockey@zodiac.rutgers.edu
+
+ William L. Hooton, Vice President
+ Business & Technical Development
+ Imaging & Information Systems Group
+ I-NET
+ 6430 Rockledge Drive, Suite 400
+ Bethesda, MD 208l7
+ Phone: (301) 564-6750
+ Fax: (513) 564-6867
+
+ Anne R. Kenney, Associate Director
+ Department of Preservation and Conservation
+ 701 Olin Library
+ Cornell University
+ Ithaca, NY 14853
+ Phone: (607) 255-6875
+ Fax: (607) 255-9346
+ E-mail: LYDY@CORNELLA.BITNET
+
+ Ronald L. Larsen
+ Associate Director for Information Technology
+ University of Maryland at College Park
+ Room B0224, McKeldin Library
+ College Park, MD 20742-7011
+ Phone: (301) 405-9194
+ Fax: (301) 314-9865
+ E-mail: rlarsen@libr.umd.edu
+
+ Maria L. Lebron, Managing Editor
+ The Online Journal of Current Clinical Trials
+ l333 H Street, N.W.
+ Washington, DC 20005
+ Phone: (202) 326-6735
+ Fax: (202) 842-2868
+ E-mail: PUBSAAAS@GWUVM.BITNET
+
+ Michael Lesk, Executive Director
+ Computer Science Research
+ Bell Communications Research, Inc.
+ Rm 2A-385
+ 445 South Street
+ Morristown, NJ 07960-l9l0
+ Phone: (201) 829-4070
+ Fax: (201) 829-5981
+ E-mail: lesk@bellcore.com (Internet) or bellcore!lesk (uucp)
+
+ Clifford A. Lynch
+ Director, Library Automation
+ University of California,
+ Office of the President
+ 300 Lakeside Drive, 8th Floor
+ Oakland, CA 94612-3350
+ Phone: (510) 987-0522
+ Fax: (510) 839-3573
+ E-mail: calur@uccmvsa
+
+ Avra Michelson
+ National Archives and Records Administration
+ NSZ Rm. 14N
+ 7th & Pennsylvania, N.W.
+ Washington, D.C. 20408
+ Phone: (202) 501-5544
+ Fax: (202) 501-5533
+ E-mail: tmi@cu.nih.gov
+
+ Elli Mylonas, Managing Editor
+ Perseus Project
+ Department of the Classics
+ Harvard University
+ 319 Boylston Hall
+ Cambridge, MA 02138
+ Phone: (617) 495-9025, (617) 495-0456 (direct)
+ Fax: (617) 496-8886
+ E-mail: Elli@IKAROS.Harvard.EDU or elli@wjh12.harvard.edu
+
+ David Woodley Packard
+ Packard Humanities Institute
+ 300 Second Street, Suite 201
+ Los Altos, CA 94002
+ Phone: (415) 948-0150 (PHI)
+ Fax: (415) 948-5793
+
+ Lynne K. Personius, Assistant Director
+ Cornell Information Technologies for
+ Scholarly Information Sources
+ 502 Olin Library
+ Cornell University
+ Ithaca, NY 14853
+ Phone: (607) 255-3393
+ Fax: (607) 255-9346
+ E-mail: JRN@CORNELLC.BITNET
+
+ Marybeth Peters
+ Policy Planning Adviser to the
+ Register of Copyrights
+ Library of Congress
+ Office LM 403
+ Phone: (202) 707-8350
+ Fax: (202) 707-8366
+
+ C. Michael Sperberg-McQueen
+ Editor, Text Encoding Initiative
+ Computer Center (M/C 135)
+ University of Illinois at Chicago
+ Box 6998
+ Chicago, IL 60680
+ Phone: (312) 413-0317
+ Fax: (312) 996-6834
+ E-mail: u35395@uicvm..cc.uic.edu or u35395@uicvm.bitnet
+
+ George R. Thoma, Chief
+ Communications Engineering Branch
+ National Library of Medicine
+ 8600 Rockville Pike
+ Bethesda, MD 20894
+ Phone: (301) 496-4496
+ Fax: (301) 402-0341
+ E-mail: thoma@lhc.nlm.nih.gov
+
+ Dorothy Twohig, Editor
+ The Papers of George Washington
+ 504 Alderman Library
+ University of Virginia
+ Charlottesville, VA 22903-2498
+ Phone: (804) 924-0523
+ Fax: (804) 924-4337
+
+ Susan H. Veccia, Team leader
+ American Memory, User Evaluation
+ Library of Congress
+ American Memory Evaluation Project
+ Phone: (202) 707-9104
+ Fax: (202) 707-3764
+ E-mail: svec@seq1.loc.gov
+
+ Donald J. Waters, Head
+ Systems Office
+ Yale University Library
+ New Haven, CT 06520
+ Phone: (203) 432-4889
+ Fax: (203) 432-7231
+ E-mail: DWATERS@YALEVM.BITNET or DWATERS@YALEVM.YCC.YALE.EDU
+
+ Stuart Weibel, Senior Research Scientist
+ OCLC
+ 6565 Frantz Road
+ Dublin, OH 43017
+ Phone: (614) 764-608l
+ Fax: (614) 764-2344
+ E-mail: INTERNET: Stu@rsch.oclc.org
+
+ Robert G. Zich
+ Special Assistant to the Associate Librarian
+ for Special Projects
+ Library of Congress
+ Phone: (202) 707-6233
+ Fax: (202) 707-3764
+ E-mail: rzic@seq1.loc.gov
+
+ Judith A. Zidar, Coordinator
+ National Agricultural Text Digitizing Program
+ Information Systems Division
+ National Agricultural Library
+ 10301 Baltimore Boulevard
+ Beltsville, MD 20705-2351
+ Phone: (301) 504-6813 or 504-5853
+ Fax: (301) 504-7473
+ E-mail: INTERNET: JZIDAR@ASRR.ARSUSDA.GOV
+
+
+OBSERVERS:
+
+ Helen Aguera, Program Officer
+ Division of Research
+ Room 318
+ National Endowment for the Humanities
+ 1100 Pennsylvania Avenue, N.W.
+ Washington, D.C. 20506
+ Phone: (202) 786-0358
+ Fax: (202) 786-0243
+
+ M. Ellyn Blanton, Deputy Director
+ National Demonstration Laboratory
+ for Interactive Information Technologies
+ Library of Congress
+ Phone: (202) 707-4157
+ Fax: (202) 707-2829
+
+ Charles M. Dollar
+ National Archives and Records Administration
+ NSZ Rm. 14N
+ 7th & Pennsylvania, N.W.
+ Washington, DC 20408
+ Phone: (202) 501-5532
+ Fax: (202) 501-5512
+
+ Jeffrey Field, Deputy to the Director
+ Division of Preservation and Access
+ Room 802
+ National Endowment for the Humanities
+ 1100 Pennsylvania Avenue, N.W.
+ Washington, DC 20506
+ Phone: (202) 786-0570
+ Fax: (202) 786-0243
+
+ Lorrin Garson
+ American Chemical Society
+ Research and Development Department
+ 1155 16th Street, N.W.
+ Washington, D.C. 20036
+ Phone: (202) 872-4541
+ Fax: E-mail: INTERNET: LRG96@ACS.ORG
+
+ William M. Holmes, Jr.
+ National Archives and Records Administration
+ NSZ Rm. 14N
+ 7th & Pennsylvania, N.W.
+ Washington, DC 20408
+ Phone: (202) 501-5540
+ Fax: (202) 501-5512
+ E-mail: WHOLMES@AMERICAN.EDU
+
+ Sperling Martin
+ Information Resource Management
+ 20030 Doolittle Street
+ Gaithersburg, MD 20879
+ Phone: (301) 924-1803
+
+ Michael Neuman, Director
+ The Center for Text and Technology
+ Academic Computing Center
+ 238 Reiss Science Building
+ Georgetown University
+ Washington, DC 20057
+ Phone: (202) 687-6096
+ Fax: (202) 687-6003
+ E-mail: neuman@guvax.bitnet, neuman@guvax.georgetown.edu
+
+ Barbara Paulson, Program Officer
+ Division of Preservation and Access
+ Room 802
+ National Endowment for the Humanities
+ 1100 Pennsylvania Avenue, N.W.
+ Washington, DC 20506
+ Phone: (202) 786-0577
+ Fax: (202) 786-0243
+
+ Allen H. Renear
+ Senior Academic Planning Analyst
+ Brown University Computing and Information Services
+ 115 Waterman Street
+ Campus Box 1885
+ Providence, R.I. 02912
+ Phone: (401) 863-7312
+ Fax: (401) 863-7329
+ E-mail: BITNET: Allen@BROWNVM or
+ INTERNET: Allen@brownvm.brown.edu
+
+ Susan M. Severtson, President
+ Chadwyck-Healey, Inc.
+ 1101 King Street
+ Alexandria, VA 223l4
+ Phone: (800) 752-05l5
+ Fax: (703) 683-7589
+
+ Frank Withrow
+ U.S. Department of Education
+ 555 New Jersey Avenue, N.W.
+ Washington, DC 20208-5644
+ Phone: (202) 219-2200
+ Fax: (202) 219-2106
+
+
+(LC STAFF)
+
+ Linda L. Arret
+ Machine-Readable Collections Reading Room LJ 132
+ (202) 707-1490
+
+ John D. Byrum, Jr.
+ Descriptive Cataloging Division LM 540
+ (202) 707-5194
+
+ Mary Jane Cavallo
+ Science and Technology Division LA 5210
+ (202) 707-1219
+
+ Susan Thea David
+ Congressional Research Service LM 226
+ (202) 707-7169
+
+ Robert Dierker
+ Senior Adviser for Multimedia Activities LM 608
+ (202) 707-6151
+
+ William W. Ellis
+ Associate Librarian for Science and Technology LM 611
+ (202) 707-6928
+
+ Ronald Gephart
+ Manuscript Division LM 102
+ (202) 707-5097
+
+ James Graber
+ Information Technology Services LM G51
+ (202) 707-9628
+
+ Rich Greenfield
+ American Memory LM 603
+ (202) 707-6233
+
+ Rebecca Guenther
+ Network Development LM 639
+ (202) 707-5092
+
+ Kenneth E. Harris
+ Preservation LM G21
+ (202) 707-5213
+
+ Staley Hitchcock
+ Manuscript Division LM 102
+ (202) 707-5383
+
+ Bohdan Kantor
+ Office of Special Projects LM 612
+ (202) 707-0180
+
+ John W. Kimball, Jr
+ Machine-Readable Collections Reading Room LJ 132
+ (202) 707-6560
+
+ Basil Manns
+ Information Technology Services LM G51
+ (202) 707-8345
+
+ Sally Hart McCallum
+ Network Development LM 639
+ (202) 707-6237
+
+ Dana J. Pratt
+ Publishing Office LM 602
+ (202) 707-6027
+
+ Jane Riefenhauser
+ American Memory LM 603
+ (202) 707-6233
+
+ William Z. Schenck
+ Collections Development LM 650
+ (202) 707-7706
+
+ Chandru J. Shahani
+ Preservation Research and Testing Office (R&T) LM G38
+ (202) 707-5607
+
+ William J. Sittig
+ Collections Development LM 650
+ (202) 707-7050
+
+ Paul Smith
+ Manuscript Division LM 102
+ (202) 707-5097
+
+ James L. Stevens
+ Information Technology Services LM G51
+ (202) 707-9688
+
+ Karen Stuart
+ Manuscript Division LM 130
+ (202) 707-5389
+
+ Tamara Swora
+ Preservation Microfilming Office LM G05
+ (202) 707-6293
+
+ Sarah Thomas
+ Collections Cataloging LM 642
+ (202) 707-5333
+
+
+ END
+ *************************************************************
+
+Note: This file has been edited for use on computer networks. This
+editing required the removal of diacritics, underlining, and fonts such
+as italics and bold.
+
+kde 11/92
+
+[A few of the italics (when used for emphasis) were replaced by CAPS mh]
+
+*End of The Project Gutenberg Etext of LOC WORKSHOP ON ELECTRONIC ETEXTS
+
diff --git a/snappy-1.1.0/testdata/mapreduce-osdi-1.pdf b/snappy-1.1.0/testdata/mapreduce-osdi-1.pdf Binary files differnew file mode 100644 index 0000000..b98308a --- /dev/null +++ b/snappy-1.1.0/testdata/mapreduce-osdi-1.pdf diff --git a/snappy-1.1.0/testdata/plrabn12.txt b/snappy-1.1.0/testdata/plrabn12.txt new file mode 100644 index 0000000..34088b8 --- /dev/null +++ b/snappy-1.1.0/testdata/plrabn12.txt @@ -0,0 +1,10699 @@ +
+This is the February 1992 Project Gutenberg release of:
+
+Paradise Lost by John Milton
+
+The oldest etext known to Project Gutenberg (ca. 1964-1965)
+(If you know of any older ones, please let us know.)
+
+
+Introduction (one page)
+
+This etext was originally created in 1964-1965 according to Dr.
+Joseph Raben of Queens College, NY, to whom it is attributed by
+Project Gutenberg. We had heard of this etext for years but it
+was not until 1991 that we actually managed to track it down to
+a specific location, and then it took months to convince people
+to let us have a copy, then more months for them actually to do
+the copying and get it to us. Then another month to convert to
+something we could massage with our favorite 486 in DOS. After
+that is was only a matter of days to get it into this shape you
+will see below. The original was, of course, in CAPS only, and
+so were all the other etexts of the 60's and early 70's. Don't
+let anyone fool you into thinking any etext with both upper and
+lower case is an original; all those original Project Gutenberg
+etexts were also in upper case and were translated or rewritten
+many times to get them into their current condition. They have
+been worked on by many people throughout the world.
+
+In the course of our searches for Professor Raben and his etext
+we were never able to determine where copies were or which of a
+variety of editions he may have used as a source. We did get a
+little information here and there, but even after we received a
+copy of the etext we were unwilling to release it without first
+determining that it was in fact Public Domain and finding Raben
+to verify this and get his permission. Interested enough, in a
+totally unrelated action to our searches for him, the professor
+subscribed to the Project Gutenberg listserver and we happened,
+by accident, to notice his name. (We don't really look at every
+subscription request as the computers usually handle them.) The
+etext was then properly identified, copyright analyzed, and the
+current edition prepared.
+
+To give you an estimation of the difference in the original and
+what we have today: the original was probably entered on cards
+commonly known at the time as "IBM cards" (Do Not Fold, Spindle
+or Mutilate) and probably took in excess of 100,000 of them. A
+single card could hold 80 characters (hence 80 characters is an
+accepted standard for so many computer margins), and the entire
+original edition we received in all caps was over 800,000 chars
+in length, including line enumeration, symbols for caps and the
+punctuation marks, etc., since they were not available keyboard
+characters at the time (probably the keyboards operated at baud
+rates of around 113, meaning the typists had to type slowly for
+the keyboard to keep up).
+
+This is the second version of Paradise Lost released by Project
+Gutenberg. The first was released as our October, 1991 etext.
+
+
+
+
+
+Paradise Lost
+
+
+
+
+Book I
+
+
+Of Man's first disobedience, and the fruit
+Of that forbidden tree whose mortal taste
+Brought death into the World, and all our woe,
+With loss of Eden, till one greater Man
+Restore us, and regain the blissful seat,
+Sing, Heavenly Muse, that, on the secret top
+Of Oreb, or of Sinai, didst inspire
+That shepherd who first taught the chosen seed
+In the beginning how the heavens and earth
+Rose out of Chaos: or, if Sion hill
+Delight thee more, and Siloa's brook that flowed
+Fast by the oracle of God, I thence
+Invoke thy aid to my adventurous song,
+That with no middle flight intends to soar
+Above th' Aonian mount, while it pursues
+Things unattempted yet in prose or rhyme.
+And chiefly thou, O Spirit, that dost prefer
+Before all temples th' upright heart and pure,
+Instruct me, for thou know'st; thou from the first
+Wast present, and, with mighty wings outspread,
+Dove-like sat'st brooding on the vast Abyss,
+And mad'st it pregnant: what in me is dark
+Illumine, what is low raise and support;
+That, to the height of this great argument,
+I may assert Eternal Providence,
+And justify the ways of God to men.
+ Say first--for Heaven hides nothing from thy view,
+Nor the deep tract of Hell--say first what cause
+Moved our grand parents, in that happy state,
+Favoured of Heaven so highly, to fall off
+From their Creator, and transgress his will
+For one restraint, lords of the World besides.
+Who first seduced them to that foul revolt?
+ Th' infernal Serpent; he it was whose guile,
+Stirred up with envy and revenge, deceived
+The mother of mankind, what time his pride
+Had cast him out from Heaven, with all his host
+Of rebel Angels, by whose aid, aspiring
+To set himself in glory above his peers,
+He trusted to have equalled the Most High,
+If he opposed, and with ambitious aim
+Against the throne and monarchy of God,
+Raised impious war in Heaven and battle proud,
+With vain attempt. Him the Almighty Power
+Hurled headlong flaming from th' ethereal sky,
+With hideous ruin and combustion, down
+To bottomless perdition, there to dwell
+In adamantine chains and penal fire,
+Who durst defy th' Omnipotent to arms.
+ Nine times the space that measures day and night
+To mortal men, he, with his horrid crew,
+Lay vanquished, rolling in the fiery gulf,
+Confounded, though immortal. But his doom
+Reserved him to more wrath; for now the thought
+Both of lost happiness and lasting pain
+Torments him: round he throws his baleful eyes,
+That witnessed huge affliction and dismay,
+Mixed with obdurate pride and steadfast hate.
+At once, as far as Angels ken, he views
+The dismal situation waste and wild.
+A dungeon horrible, on all sides round,
+As one great furnace flamed; yet from those flames
+No light; but rather darkness visible
+Served only to discover sights of woe,
+Regions of sorrow, doleful shades, where peace
+And rest can never dwell, hope never comes
+That comes to all, but torture without end
+Still urges, and a fiery deluge, fed
+With ever-burning sulphur unconsumed.
+Such place Eternal Justice has prepared
+For those rebellious; here their prison ordained
+In utter darkness, and their portion set,
+As far removed from God and light of Heaven
+As from the centre thrice to th' utmost pole.
+Oh how unlike the place from whence they fell!
+There the companions of his fall, o'erwhelmed
+With floods and whirlwinds of tempestuous fire,
+He soon discerns; and, weltering by his side,
+One next himself in power, and next in crime,
+Long after known in Palestine, and named
+Beelzebub. To whom th' Arch-Enemy,
+And thence in Heaven called Satan, with bold words
+Breaking the horrid silence, thus began:--
+ "If thou beest he--but O how fallen! how changed
+From him who, in the happy realms of light
+Clothed with transcendent brightness, didst outshine
+Myriads, though bright!--if he whom mutual league,
+United thoughts and counsels, equal hope
+And hazard in the glorious enterprise
+Joined with me once, now misery hath joined
+In equal ruin; into what pit thou seest
+From what height fallen: so much the stronger proved
+He with his thunder; and till then who knew
+The force of those dire arms? Yet not for those,
+Nor what the potent Victor in his rage
+Can else inflict, do I repent, or change,
+Though changed in outward lustre, that fixed mind,
+And high disdain from sense of injured merit,
+That with the Mightiest raised me to contend,
+And to the fierce contentions brought along
+Innumerable force of Spirits armed,
+That durst dislike his reign, and, me preferring,
+His utmost power with adverse power opposed
+In dubious battle on the plains of Heaven,
+And shook his throne. What though the field be lost?
+All is not lost--the unconquerable will,
+And study of revenge, immortal hate,
+And courage never to submit or yield:
+And what is else not to be overcome?
+That glory never shall his wrath or might
+Extort from me. To bow and sue for grace
+With suppliant knee, and deify his power
+Who, from the terror of this arm, so late
+Doubted his empire--that were low indeed;
+That were an ignominy and shame beneath
+This downfall; since, by fate, the strength of Gods,
+And this empyreal sybstance, cannot fail;
+Since, through experience of this great event,
+In arms not worse, in foresight much advanced,
+We may with more successful hope resolve
+To wage by force or guile eternal war,
+Irreconcilable to our grand Foe,
+Who now triumphs, and in th' excess of joy
+Sole reigning holds the tyranny of Heaven."
+ So spake th' apostate Angel, though in pain,
+Vaunting aloud, but racked with deep despair;
+And him thus answered soon his bold compeer:--
+ "O Prince, O Chief of many throned Powers
+That led th' embattled Seraphim to war
+Under thy conduct, and, in dreadful deeds
+Fearless, endangered Heaven's perpetual King,
+And put to proof his high supremacy,
+Whether upheld by strength, or chance, or fate,
+Too well I see and rue the dire event
+That, with sad overthrow and foul defeat,
+Hath lost us Heaven, and all this mighty host
+In horrible destruction laid thus low,
+As far as Gods and heavenly Essences
+Can perish: for the mind and spirit remains
+Invincible, and vigour soon returns,
+Though all our glory extinct, and happy state
+Here swallowed up in endless misery.
+But what if he our Conqueror (whom I now
+Of force believe almighty, since no less
+Than such could have o'erpowered such force as ours)
+Have left us this our spirit and strength entire,
+Strongly to suffer and support our pains,
+That we may so suffice his vengeful ire,
+Or do him mightier service as his thralls
+By right of war, whate'er his business be,
+Here in the heart of Hell to work in fire,
+Or do his errands in the gloomy Deep?
+What can it the avail though yet we feel
+Strength undiminished, or eternal being
+To undergo eternal punishment?"
+ Whereto with speedy words th' Arch-Fiend replied:--
+"Fallen Cherub, to be weak is miserable,
+Doing or suffering: but of this be sure--
+To do aught good never will be our task,
+But ever to do ill our sole delight,
+As being the contrary to his high will
+Whom we resist. If then his providence
+Out of our evil seek to bring forth good,
+Our labour must be to pervert that end,
+And out of good still to find means of evil;
+Which ofttimes may succeed so as perhaps
+Shall grieve him, if I fail not, and disturb
+His inmost counsels from their destined aim.
+But see! the angry Victor hath recalled
+His ministers of vengeance and pursuit
+Back to the gates of Heaven: the sulphurous hail,
+Shot after us in storm, o'erblown hath laid
+The fiery surge that from the precipice
+Of Heaven received us falling; and the thunder,
+Winged with red lightning and impetuous rage,
+Perhaps hath spent his shafts, and ceases now
+To bellow through the vast and boundless Deep.
+Let us not slip th' occasion, whether scorn
+Or satiate fury yield it from our Foe.
+Seest thou yon dreary plain, forlorn and wild,
+The seat of desolation, void of light,
+Save what the glimmering of these livid flames
+Casts pale and dreadful? Thither let us tend
+From off the tossing of these fiery waves;
+There rest, if any rest can harbour there;
+And, re-assembling our afflicted powers,
+Consult how we may henceforth most offend
+Our enemy, our own loss how repair,
+How overcome this dire calamity,
+What reinforcement we may gain from hope,
+If not, what resolution from despair."
+ Thus Satan, talking to his nearest mate,
+With head uplift above the wave, and eyes
+That sparkling blazed; his other parts besides
+Prone on the flood, extended long and large,
+Lay floating many a rood, in bulk as huge
+As whom the fables name of monstrous size,
+Titanian or Earth-born, that warred on Jove,
+Briareos or Typhon, whom the den
+By ancient Tarsus held, or that sea-beast
+Leviathan, which God of all his works
+Created hugest that swim th' ocean-stream.
+Him, haply slumbering on the Norway foam,
+The pilot of some small night-foundered skiff,
+Deeming some island, oft, as seamen tell,
+With fixed anchor in his scaly rind,
+Moors by his side under the lee, while night
+Invests the sea, and wished morn delays.
+So stretched out huge in length the Arch-fiend lay,
+Chained on the burning lake; nor ever thence
+Had risen, or heaved his head, but that the will
+And high permission of all-ruling Heaven
+Left him at large to his own dark designs,
+That with reiterated crimes he might
+Heap on himself damnation, while he sought
+Evil to others, and enraged might see
+How all his malice served but to bring forth
+Infinite goodness, grace, and mercy, shewn
+On Man by him seduced, but on himself
+Treble confusion, wrath, and vengeance poured.
+ Forthwith upright he rears from off the pool
+His mighty stature; on each hand the flames
+Driven backward slope their pointing spires, and,rolled
+In billows, leave i' th' midst a horrid vale.
+Then with expanded wings he steers his flight
+Aloft, incumbent on the dusky air,
+That felt unusual weight; till on dry land
+He lights--if it were land that ever burned
+With solid, as the lake with liquid fire,
+And such appeared in hue as when the force
+Of subterranean wind transprots a hill
+Torn from Pelorus, or the shattered side
+Of thundering Etna, whose combustible
+And fuelled entrails, thence conceiving fire,
+Sublimed with mineral fury, aid the winds,
+And leave a singed bottom all involved
+With stench and smoke. Such resting found the sole
+Of unblest feet. Him followed his next mate;
+Both glorying to have scaped the Stygian flood
+As gods, and by their own recovered strength,
+Not by the sufferance of supernal Power.
+ "Is this the region, this the soil, the clime,"
+Said then the lost Archangel, "this the seat
+That we must change for Heaven?--this mournful gloom
+For that celestial light? Be it so, since he
+Who now is sovereign can dispose and bid
+What shall be right: farthest from him is best
+Whom reason hath equalled, force hath made supreme
+Above his equals. Farewell, happy fields,
+Where joy for ever dwells! Hail, horrors! hail,
+Infernal world! and thou, profoundest Hell,
+Receive thy new possessor--one who brings
+A mind not to be changed by place or time.
+The mind is its own place, and in itself
+Can make a Heaven of Hell, a Hell of Heaven.
+What matter where, if I be still the same,
+And what I should be, all but less than he
+Whom thunder hath made greater? Here at least
+We shall be free; th' Almighty hath not built
+Here for his envy, will not drive us hence:
+Here we may reigh secure; and, in my choice,
+To reign is worth ambition, though in Hell:
+Better to reign in Hell than serve in Heaven.
+But wherefore let we then our faithful friends,
+Th' associates and co-partners of our loss,
+Lie thus astonished on th' oblivious pool,
+And call them not to share with us their part
+In this unhappy mansion, or once more
+With rallied arms to try what may be yet
+Regained in Heaven, or what more lost in Hell?"
+ So Satan spake; and him Beelzebub
+Thus answered:--"Leader of those armies bright
+Which, but th' Omnipotent, none could have foiled!
+If once they hear that voice, their liveliest pledge
+Of hope in fears and dangers--heard so oft
+In worst extremes, and on the perilous edge
+Of battle, when it raged, in all assaults
+Their surest signal--they will soon resume
+New courage and revive, though now they lie
+Grovelling and prostrate on yon lake of fire,
+As we erewhile, astounded and amazed;
+No wonder, fallen such a pernicious height!"
+ He scare had ceased when the superior Fiend
+Was moving toward the shore; his ponderous shield,
+Ethereal temper, massy, large, and round,
+Behind him cast. The broad circumference
+Hung on his shoulders like the moon, whose orb
+Through optic glass the Tuscan artist views
+At evening, from the top of Fesole,
+Or in Valdarno, to descry new lands,
+Rivers, or mountains, in her spotty globe.
+His spear--to equal which the tallest pine
+Hewn on Norwegian hills, to be the mast
+Of some great ammiral, were but a wand--
+He walked with, to support uneasy steps
+Over the burning marl, not like those steps
+On Heaven's azure; and the torrid clime
+Smote on him sore besides, vaulted with fire.
+Nathless he so endured, till on the beach
+Of that inflamed sea he stood, and called
+His legions--Angel Forms, who lay entranced
+Thick as autumnal leaves that strow the brooks
+In Vallombrosa, where th' Etrurian shades
+High over-arched embower; or scattered sedge
+Afloat, when with fierce winds Orion armed
+Hath vexed the Red-Sea coast, whose waves o'erthrew
+Busiris and his Memphian chivalry,
+While with perfidious hatred they pursued
+The sojourners of Goshen, who beheld
+From the safe shore their floating carcases
+And broken chariot-wheels. So thick bestrown,
+Abject and lost, lay these, covering the flood,
+Under amazement of their hideous change.
+He called so loud that all the hollow deep
+Of Hell resounded:--"Princes, Potentates,
+Warriors, the Flower of Heaven--once yours; now lost,
+If such astonishment as this can seize
+Eternal Spirits! Or have ye chosen this place
+After the toil of battle to repose
+Your wearied virtue, for the ease you find
+To slumber here, as in the vales of Heaven?
+Or in this abject posture have ye sworn
+To adore the Conqueror, who now beholds
+Cherub and Seraph rolling in the flood
+With scattered arms and ensigns, till anon
+His swift pursuers from Heaven-gates discern
+Th' advantage, and, descending, tread us down
+Thus drooping, or with linked thunderbolts
+Transfix us to the bottom of this gulf?
+Awake, arise, or be for ever fallen!"
+ They heard, and were abashed, and up they sprung
+Upon the wing, as when men wont to watch
+On duty, sleeping found by whom they dread,
+Rouse and bestir themselves ere well awake.
+Nor did they not perceive the evil plight
+In which they were, or the fierce pains not feel;
+Yet to their General's voice they soon obeyed
+Innumerable. As when the potent rod
+Of Amram's son, in Egypt's evil day,
+Waved round the coast, up-called a pitchy cloud
+Of locusts, warping on the eastern wind,
+That o'er the realm of impious Pharaoh hung
+Like Night, and darkened all the land of Nile;
+So numberless were those bad Angels seen
+Hovering on wing under the cope of Hell,
+'Twixt upper, nether, and surrounding fires;
+Till, as a signal given, th' uplifted spear
+Of their great Sultan waving to direct
+Their course, in even balance down they light
+On the firm brimstone, and fill all the plain:
+A multitude like which the populous North
+Poured never from her frozen loins to pass
+Rhene or the Danaw, when her barbarous sons
+Came like a deluge on the South, and spread
+Beneath Gibraltar to the Libyan sands.
+Forthwith, form every squadron and each band,
+The heads and leaders thither haste where stood
+Their great Commander--godlike Shapes, and Forms
+Excelling human; princely Dignities;
+And Powers that erst in Heaven sat on thrones,
+Though on their names in Heavenly records now
+Be no memorial, blotted out and rased
+By their rebellion from the Books of Life.
+Nor had they yet among the sons of Eve
+Got them new names, till, wandering o'er the earth,
+Through God's high sufferance for the trial of man,
+By falsities and lies the greatest part
+Of mankind they corrupted to forsake
+God their Creator, and th' invisible
+Glory of him that made them to transform
+Oft to the image of a brute, adorned
+With gay religions full of pomp and gold,
+And devils to adore for deities:
+Then were they known to men by various names,
+And various idols through the heathen world.
+ Say, Muse, their names then known, who first, who last,
+Roused from the slumber on that fiery couch,
+At their great Emperor's call, as next in worth
+Came singly where he stood on the bare strand,
+While the promiscuous crowd stood yet aloof?
+ The chief were those who, from the pit of Hell
+Roaming to seek their prey on Earth, durst fix
+Their seats, long after, next the seat of God,
+Their altars by his altar, gods adored
+Among the nations round, and durst abide
+Jehovah thundering out of Sion, throned
+Between the Cherubim; yea, often placed
+Within his sanctuary itself their shrines,
+Abominations; and with cursed things
+His holy rites and solemn feasts profaned,
+And with their darkness durst affront his light.
+First, Moloch, horrid king, besmeared with blood
+Of human sacrifice, and parents' tears;
+Though, for the noise of drums and timbrels loud,
+Their children's cries unheard that passed through fire
+To his grim idol. Him the Ammonite
+Worshiped in Rabba and her watery plain,
+In Argob and in Basan, to the stream
+Of utmost Arnon. Nor content with such
+Audacious neighbourhood, the wisest heart
+Of Solomon he led by fraoud to build
+His temple right against the temple of God
+On that opprobrious hill, and made his grove
+The pleasant valley of Hinnom, Tophet thence
+And black Gehenna called, the type of Hell.
+Next Chemos, th' obscene dread of Moab's sons,
+From Aroar to Nebo and the wild
+Of southmost Abarim; in Hesebon
+And Horonaim, Seon's real, beyond
+The flowery dale of Sibma clad with vines,
+And Eleale to th' Asphaltic Pool:
+Peor his other name, when he enticed
+Israel in Sittim, on their march from Nile,
+To do him wanton rites, which cost them woe.
+Yet thence his lustful orgies he enlarged
+Even to that hill of scandal, by the grove
+Of Moloch homicide, lust hard by hate,
+Till good Josiah drove them thence to Hell.
+With these came they who, from the bordering flood
+Of old Euphrates to the brook that parts
+Egypt from Syrian ground, had general names
+Of Baalim and Ashtaroth--those male,
+These feminine. For Spirits, when they please,
+Can either sex assume, or both; so soft
+And uncompounded is their essence pure,
+Not tried or manacled with joint or limb,
+Nor founded on the brittle strength of bones,
+Like cumbrous flesh; but, in what shape they choose,
+Dilated or condensed, bright or obscure,
+Can execute their airy purposes,
+And works of love or enmity fulfil.
+For those the race of Israel oft forsook
+Their Living Strength, and unfrequented left
+His righteous altar, bowing lowly down
+To bestial gods; for which their heads as low
+Bowed down in battle, sunk before the spear
+Of despicable foes. With these in troop
+Came Astoreth, whom the Phoenicians called
+Astarte, queen of heaven, with crescent horns;
+To whose bright image nigntly by the moon
+Sidonian virgins paid their vows and songs;
+In Sion also not unsung, where stood
+Her temple on th' offensive mountain, built
+By that uxorious king whose heart, though large,
+Beguiled by fair idolatresses, fell
+To idols foul. Thammuz came next behind,
+Whose annual wound in Lebanon allured
+The Syrian damsels to lament his fate
+In amorous ditties all a summer's day,
+While smooth Adonis from his native rock
+Ran purple to the sea, supposed with blood
+Of Thammuz yearly wounded: the love-tale
+Infected Sion's daughters with like heat,
+Whose wanton passions in the sacred proch
+Ezekiel saw, when, by the vision led,
+His eye surveyed the dark idolatries
+Of alienated Judah. Next came one
+Who mourned in earnest, when the captive ark
+Maimed his brute image, head and hands lopt off,
+In his own temple, on the grunsel-edge,
+Where he fell flat and shamed his worshippers:
+Dagon his name, sea-monster,upward man
+And downward fish; yet had his temple high
+Reared in Azotus, dreaded through the coast
+Of Palestine, in Gath and Ascalon,
+And Accaron and Gaza's frontier bounds.
+Him followed Rimmon, whose delightful seat
+Was fair Damascus, on the fertile banks
+Of Abbana and Pharphar, lucid streams.
+He also against the house of God was bold:
+A leper once he lost, and gained a king--
+Ahaz, his sottish conqueror, whom he drew
+God's altar to disparage and displace
+For one of Syrian mode, whereon to burn
+His odious offerings, and adore the gods
+Whom he had vanquished. After these appeared
+A crew who, under names of old renown--
+Osiris, Isis, Orus, and their train--
+With monstrous shapes and sorceries abused
+Fanatic Egypt and her priests to seek
+Their wandering gods disguised in brutish forms
+Rather than human. Nor did Israel scape
+Th' infection, when their borrowed gold composed
+The calf in Oreb; and the rebel king
+Doubled that sin in Bethel and in Dan,
+Likening his Maker to the grazed ox--
+Jehovah, who, in one night, when he passed
+From Egypt marching, equalled with one stroke
+Both her first-born and all her bleating gods.
+Belial came last; than whom a Spirit more lewd
+Fell not from Heaven, or more gross to love
+Vice for itself. To him no temple stood
+Or altar smoked; yet who more oft than he
+In temples and at altars, when the priest
+Turns atheist, as did Eli's sons, who filled
+With lust and violence the house of God?
+In courts and palaces he also reigns,
+And in luxurious cities, where the noise
+Of riot ascends above their loftiest towers,
+And injury and outrage; and, when night
+Darkens the streets, then wander forth the sons
+Of Belial, flown with insolence and wine.
+Witness the streets of Sodom, and that night
+In Gibeah, when the hospitable door
+Exposed a matron, to avoid worse rape.
+ These were the prime in order and in might:
+The rest were long to tell; though far renowned
+Th' Ionian gods--of Javan's issue held
+Gods, yet confessed later than Heaven and Earth,
+Their boasted parents;--Titan, Heaven's first-born,
+With his enormous brood, and birthright seized
+By younger Saturn: he from mightier Jove,
+His own and Rhea's son, like measure found;
+So Jove usurping reigned. These, first in Crete
+And Ida known, thence on the snowy top
+Of cold Olympus ruled the middle air,
+Their highest heaven; or on the Delphian cliff,
+Or in Dodona, and through all the bounds
+Of Doric land; or who with Saturn old
+Fled over Adria to th' Hesperian fields,
+And o'er the Celtic roamed the utmost Isles.
+ All these and more came flocking; but with looks
+Downcast and damp; yet such wherein appeared
+Obscure some glimpse of joy to have found their Chief
+Not in despair, to have found themselves not lost
+In loss itself; which on his countenance cast
+Like doubtful hue. But he, his wonted pride
+Soon recollecting, with high words, that bore
+Semblance of worth, not substance, gently raised
+Their fainting courage, and dispelled their fears.
+Then straight commands that, at the warlike sound
+Of trumpets loud and clarions, be upreared
+His mighty standard. That proud honour claimed
+Azazel as his right, a Cherub tall:
+Who forthwith from the glittering staff unfurled
+Th' imperial ensign; which, full high advanced,
+Shone like a meteor streaming to the wind,
+With gems and golden lustre rich emblazed,
+Seraphic arms and trophies; all the while
+Sonorous metal blowing martial sounds:
+At which the universal host up-sent
+A shout that tore Hell's concave, and beyond
+Frighted the reign of Chaos and old Night.
+All in a moment through the gloom were seen
+Ten thousand banners rise into the air,
+With orient colours waving: with them rose
+A forest huge of spears; and thronging helms
+Appeared, and serried shields in thick array
+Of depth immeasurable. Anon they move
+In perfect phalanx to the Dorian mood
+Of flutes and soft recorders--such as raised
+To height of noblest temper heroes old
+Arming to battle, and instead of rage
+Deliberate valour breathed, firm, and unmoved
+With dread of death to flight or foul retreat;
+Nor wanting power to mitigate and swage
+With solemn touches troubled thoughts, and chase
+Anguish and doubt and fear and sorrow and pain
+From mortal or immortal minds. Thus they,
+Breathing united force with fixed thought,
+Moved on in silence to soft pipes that charmed
+Their painful steps o'er the burnt soil. And now
+Advanced in view they stand--a horrid front
+Of dreadful length and dazzling arms, in guise
+Of warriors old, with ordered spear and shield,
+Awaiting what command their mighty Chief
+Had to impose. He through the armed files
+Darts his experienced eye, and soon traverse
+The whole battalion views--their order due,
+Their visages and stature as of gods;
+Their number last he sums. And now his heart
+Distends with pride, and, hardening in his strength,
+Glories: for never, since created Man,
+Met such embodied force as, named with these,
+Could merit more than that small infantry
+Warred on by cranes--though all the giant brood
+Of Phlegra with th' heroic race were joined
+That fought at Thebes and Ilium, on each side
+Mixed with auxiliar gods; and what resounds
+In fable or romance of Uther's son,
+Begirt with British and Armoric knights;
+And all who since, baptized or infidel,
+Jousted in Aspramont, or Montalban,
+Damasco, or Marocco, or Trebisond,
+Or whom Biserta sent from Afric shore
+When Charlemain with all his peerage fell
+By Fontarabbia. Thus far these beyond
+Compare of mortal prowess, yet observed
+Their dread Commander. He, above the rest
+In shape and gesture proudly eminent,
+Stood like a tower. His form had yet not lost
+All her original brightness, nor appeared
+Less than Archangel ruined, and th' excess
+Of glory obscured: as when the sun new-risen
+Looks through the horizontal misty air
+Shorn of his beams, or, from behind the moon,
+In dim eclipse, disastrous twilight sheds
+On half the nations, and with fear of change
+Perplexes monarchs. Darkened so, yet shone
+Above them all th' Archangel: but his face
+Deep scars of thunder had intrenched, and care
+Sat on his faded cheek, but under brows
+Of dauntless courage, and considerate pride
+Waiting revenge. Cruel his eye, but cast
+Signs of remorse and passion, to behold
+The fellows of his crime, the followers rather
+(Far other once beheld in bliss), condemned
+For ever now to have their lot in pain--
+Millions of Spirits for his fault amerced
+Of Heaven, and from eteranl splendours flung
+For his revolt--yet faithful how they stood,
+Their glory withered; as, when heaven's fire
+Hath scathed the forest oaks or mountain pines,
+With singed top their stately growth, though bare,
+Stands on the blasted heath. He now prepared
+To speak; whereat their doubled ranks they bend
+From wing to wing, and half enclose him round
+With all his peers: attention held them mute.
+Thrice he assayed, and thrice, in spite of scorn,
+Tears, such as Angels weep, burst forth: at last
+Words interwove with sighs found out their way:--
+ "O myriads of immortal Spirits! O Powers
+Matchless, but with th' Almighth!--and that strife
+Was not inglorious, though th' event was dire,
+As this place testifies, and this dire change,
+Hateful to utter. But what power of mind,
+Forseeing or presaging, from the depth
+Of knowledge past or present, could have feared
+How such united force of gods, how such
+As stood like these, could ever know repulse?
+For who can yet believe, though after loss,
+That all these puissant legions, whose exile
+Hath emptied Heaven, shall fail to re-ascend,
+Self-raised, and repossess their native seat?
+For me, be witness all the host of Heaven,
+If counsels different, or danger shunned
+By me, have lost our hopes. But he who reigns
+Monarch in Heaven till then as one secure
+Sat on his throne, upheld by old repute,
+Consent or custom, and his regal state
+Put forth at full, but still his strength concealed--
+Which tempted our attempt, and wrought our fall.
+Henceforth his might we know, and know our own,
+So as not either to provoke, or dread
+New war provoked: our better part remains
+To work in close design, by fraud or guile,
+What force effected not; that he no less
+At length from us may find, who overcomes
+By force hath overcome but half his foe.
+Space may produce new Worlds; whereof so rife
+There went a fame in Heaven that he ere long
+Intended to create, and therein plant
+A generation whom his choice regard
+Should favour equal to the Sons of Heaven.
+Thither, if but to pry, shall be perhaps
+Our first eruption--thither, or elsewhere;
+For this infernal pit shall never hold
+Celestial Spirits in bondage, nor th' Abyss
+Long under darkness cover. But these thoughts
+Full counsel must mature. Peace is despaired;
+For who can think submission? War, then, war
+Open or understood, must be resolved."
+ He spake; and, to confirm his words, outflew
+Millions of flaming swords, drawn from the thighs
+Of mighty Cherubim; the sudden blaze
+Far round illumined Hell. Highly they raged
+Against the Highest, and fierce with grasped arms
+Clashed on their sounding shields the din of war,
+Hurling defiance toward the vault of Heaven.
+ There stood a hill not far, whose grisly top
+Belched fire and rolling smoke; the rest entire
+Shone with a glossy scurf--undoubted sign
+That in his womb was hid metallic ore,
+The work of sulphur. Thither, winged with speed,
+A numerous brigade hastened: as when bands
+Of pioneers, with spade and pickaxe armed,
+Forerun the royal camp, to trench a field,
+Or cast a rampart. Mammon led them on--
+Mammon, the least erected Spirit that fell
+From Heaven; for even in Heaven his looks and thoughts
+Were always downward bent, admiring more
+The riches of heaven's pavement, trodden gold,
+Than aught divine or holy else enjoyed
+In vision beatific. By him first
+Men also, and by his suggestion taught,
+Ransacked the centre, and with impious hands
+Rifled the bowels of their mother Earth
+For treasures better hid. Soon had his crew
+Opened into the hill a spacious wound,
+And digged out ribs of gold. Let none admire
+That riches grow in Hell; that soil may best
+Deserve the precious bane. And here let those
+Who boast in mortal things, and wondering tell
+Of Babel, and the works of Memphian kings,
+Learn how their greatest monuments of fame
+And strength, and art, are easily outdone
+By Spirits reprobate, and in an hour
+What in an age they, with incessant toil
+And hands innumerable, scarce perform.
+Nigh on the plain, in many cells prepared,
+That underneath had veins of liquid fire
+Sluiced from the lake, a second multitude
+With wondrous art founded the massy ore,
+Severing each kind, and scummed the bullion-dross.
+A third as soon had formed within the ground
+A various mould, and from the boiling cells
+By strange conveyance filled each hollow nook;
+As in an organ, from one blast of wind,
+To many a row of pipes the sound-board breathes.
+Anon out of the earth a fabric huge
+Rose like an exhalation, with the sound
+Of dulcet symphonies and voices sweet--
+Built like a temple, where pilasters round
+Were set, and Doric pillars overlaid
+With golden architrave; nor did there want
+Cornice or frieze, with bossy sculptures graven;
+The roof was fretted gold. Not Babylon
+Nor great Alcairo such magnificence
+Equalled in all their glories, to enshrine
+Belus or Serapis their gods, or seat
+Their kings, when Egypt with Assyria strove
+In wealth and luxury. Th' ascending pile
+Stood fixed her stately height, and straight the doors,
+Opening their brazen folds, discover, wide
+Within, her ample spaces o'er the smooth
+And level pavement: from the arched roof,
+Pendent by subtle magic, many a row
+Of starry lamps and blazing cressets, fed
+With naptha and asphaltus, yielded light
+As from a sky. The hasty multitude
+Admiring entered; and the work some praise,
+And some the architect. His hand was known
+In Heaven by many a towered structure high,
+Where sceptred Angels held their residence,
+And sat as Princes, whom the supreme King
+Exalted to such power, and gave to rule,
+Each in his Hierarchy, the Orders bright.
+Nor was his name unheard or unadored
+In ancient Greece; and in Ausonian land
+Men called him Mulciber; and how he fell
+From Heaven they fabled, thrown by angry Jove
+Sheer o'er the crystal battlements: from morn
+To noon he fell, from noon to dewy eve,
+A summer's day, and with the setting sun
+Dropt from the zenith, like a falling star,
+On Lemnos, th' Aegaean isle. Thus they relate,
+Erring; for he with this rebellious rout
+Fell long before; nor aught aviled him now
+To have built in Heaven high towers; nor did he scape
+By all his engines, but was headlong sent,
+With his industrious crew, to build in Hell.
+ Meanwhile the winged Heralds, by command
+Of sovereign power, with awful ceremony
+And trumpet's sound, throughout the host proclaim
+A solemn council forthwith to be held
+At Pandemonium, the high capital
+Of Satan and his peers. Their summons called
+From every band and squared regiment
+By place or choice the worthiest: they anon
+With hundreds and with thousands trooping came
+Attended. All access was thronged; the gates
+And porches wide, but chief the spacious hall
+(Though like a covered field, where champions bold
+Wont ride in armed, and at the Soldan's chair
+Defied the best of Paynim chivalry
+To mortal combat, or career with lance),
+Thick swarmed, both on the ground and in the air,
+Brushed with the hiss of rustling wings. As bees
+In spring-time, when the Sun with Taurus rides.
+Pour forth their populous youth about the hive
+In clusters; they among fresh dews and flowers
+Fly to and fro, or on the smoothed plank,
+The suburb of their straw-built citadel,
+New rubbed with balm, expatiate, and confer
+Their state-affairs: so thick the airy crowd
+Swarmed and were straitened; till, the signal given,
+Behold a wonder! They but now who seemed
+In bigness to surpass Earth's giant sons,
+Now less than smallest dwarfs, in narrow room
+Throng numberless--like that pygmean race
+Beyond the Indian mount; or faery elves,
+Whose midnight revels, by a forest-side
+Or fountain, some belated peasant sees,
+Or dreams he sees, while overhead the Moon
+Sits arbitress, and nearer to the Earth
+Wheels her pale course: they, on their mirth and dance
+Intent, with jocund music charm his ear;
+At once with joy and fear his heart rebounds.
+Thus incorporeal Spirits to smallest forms
+Reduced their shapes immense, and were at large,
+Though without number still, amidst the hall
+Of that infernal court. But far within,
+And in their own dimensions like themselves,
+The great Seraphic Lords and Cherubim
+In close recess and secret conclave sat,
+A thousand demi-gods on golden seats,
+Frequent and full. After short silence then,
+And summons read, the great consult began.
+
+
+
+Book II
+
+
+High on a throne of royal state, which far
+Outshone the wealth or Ormus and of Ind,
+Or where the gorgeous East with richest hand
+Showers on her kings barbaric pearl and gold,
+Satan exalted sat, by merit raised
+To that bad eminence; and, from despair
+Thus high uplifted beyond hope, aspires
+Beyond thus high, insatiate to pursue
+Vain war with Heaven; and, by success untaught,
+His proud imaginations thus displayed:--
+ "Powers and Dominions, Deities of Heaven!--
+For, since no deep within her gulf can hold
+Immortal vigour, though oppressed and fallen,
+I give not Heaven for lost: from this descent
+Celestial Virtues rising will appear
+More glorious and more dread than from no fall,
+And trust themselves to fear no second fate!--
+Me though just right, and the fixed laws of Heaven,
+Did first create your leader--next, free choice
+With what besides in council or in fight
+Hath been achieved of merit--yet this loss,
+Thus far at least recovered, hath much more
+Established in a safe, unenvied throne,
+Yielded with full consent. The happier state
+In Heaven, which follows dignity, might draw
+Envy from each inferior; but who here
+Will envy whom the highest place exposes
+Foremost to stand against the Thunderer's aim
+Your bulwark, and condemns to greatest share
+Of endless pain? Where there is, then, no good
+For which to strive, no strife can grow up there
+From faction: for none sure will claim in Hell
+Precedence; none whose portion is so small
+Of present pain that with ambitious mind
+Will covet more! With this advantage, then,
+To union, and firm faith, and firm accord,
+More than can be in Heaven, we now return
+To claim our just inheritance of old,
+Surer to prosper than prosperity
+Could have assured us; and by what best way,
+Whether of open war or covert guile,
+We now debate. Who can advise may speak."
+ He ceased; and next him Moloch, sceptred king,
+Stood up--the strongest and the fiercest Spirit
+That fought in Heaven, now fiercer by despair.
+His trust was with th' Eternal to be deemed
+Equal in strength, and rather than be less
+Cared not to be at all; with that care lost
+Went all his fear: of God, or Hell, or worse,
+He recked not, and these words thereafter spake:--
+ "My sentence is for open war. Of wiles,
+More unexpert, I boast not: them let those
+Contrive who need, or when they need; not now.
+For, while they sit contriving, shall the rest--
+Millions that stand in arms, and longing wait
+The signal to ascend--sit lingering here,
+Heaven's fugitives, and for their dwelling-place
+Accept this dark opprobrious den of shame,
+The prison of his ryranny who reigns
+By our delay? No! let us rather choose,
+Armed with Hell-flames and fury, all at once
+O'er Heaven's high towers to force resistless way,
+Turning our tortures into horrid arms
+Against the Torturer; when, to meet the noise
+Of his almighty engine, he shall hear
+Infernal thunder, and, for lightning, see
+Black fire and horror shot with equal rage
+Among his Angels, and his throne itself
+Mixed with Tartarean sulphur and strange fire,
+His own invented torments. But perhaps
+The way seems difficult, and steep to scale
+With upright wing against a higher foe!
+Let such bethink them, if the sleepy drench
+Of that forgetful lake benumb not still,
+That in our porper motion we ascend
+Up to our native seat; descent and fall
+To us is adverse. Who but felt of late,
+When the fierce foe hung on our broken rear
+Insulting, and pursued us through the Deep,
+With what compulsion and laborious flight
+We sunk thus low? Th' ascent is easy, then;
+Th' event is feared! Should we again provoke
+Our stronger, some worse way his wrath may find
+To our destruction, if there be in Hell
+Fear to be worse destroyed! What can be worse
+Than to dwell here, driven out from bliss, condemned
+In this abhorred deep to utter woe!
+Where pain of unextinguishable fire
+Must exercise us without hope of end
+The vassals of his anger, when the scourge
+Inexorably, and the torturing hour,
+Calls us to penance? More destroyed than thus,
+We should be quite abolished, and expire.
+What fear we then? what doubt we to incense
+His utmost ire? which, to the height enraged,
+Will either quite consume us, and reduce
+To nothing this essential--happier far
+Than miserable to have eternal being!--
+Or, if our substance be indeed divine,
+And cannot cease to be, we are at worst
+On this side nothing; and by proof we feel
+Our power sufficient to disturb his Heaven,
+And with perpetual inroads to alarm,
+Though inaccessible, his fatal throne:
+Which, if not victory, is yet revenge."
+ He ended frowning, and his look denounced
+Desperate revenge, and battle dangerous
+To less than gods. On th' other side up rose
+Belial, in act more graceful and humane.
+A fairer person lost not Heaven; he seemed
+For dignity composed, and high exploit.
+But all was false and hollow; though his tongue
+Dropped manna, and could make the worse appear
+The better reason, to perplex and dash
+Maturest counsels: for his thoughts were low--
+ To vice industrious, but to nobler deeds
+Timorous and slothful. Yet he pleased the ear,
+And with persuasive accent thus began:--
+ "I should be much for open war, O Peers,
+As not behind in hate, if what was urged
+Main reason to persuade immediate war
+Did not dissuade me most, and seem to cast
+Ominous conjecture on the whole success;
+When he who most excels in fact of arms,
+In what he counsels and in what excels
+Mistrustful, grounds his courage on despair
+And utter dissolution, as the scope
+Of all his aim, after some dire revenge.
+First, what revenge? The towers of Heaven are filled
+With armed watch, that render all access
+Impregnable: oft on the bodering Deep
+Encamp their legions, or with obscure wing
+Scout far and wide into the realm of Night,
+Scorning surprise. Or, could we break our way
+By force, and at our heels all Hell should rise
+With blackest insurrection to confound
+Heaven's purest light, yet our great Enemy,
+All incorruptible, would on his throne
+Sit unpolluted, and th' ethereal mould,
+Incapable of stain, would soon expel
+Her mischief, and purge off the baser fire,
+Victorious. Thus repulsed, our final hope
+Is flat despair: we must exasperate
+Th' Almighty Victor to spend all his rage;
+And that must end us; that must be our cure--
+To be no more. Sad cure! for who would lose,
+Though full of pain, this intellectual being,
+Those thoughts that wander through eternity,
+To perish rather, swallowed up and lost
+In the wide womb of uncreated Night,
+Devoid of sense and motion? And who knows,
+Let this be good, whether our angry Foe
+Can give it, or will ever? How he can
+Is doubtful; that he never will is sure.
+Will he, so wise, let loose at once his ire,
+Belike through impotence or unaware,
+To give his enemies their wish, and end
+Them in his anger whom his anger saves
+To punish endless? 'Wherefore cease we, then?'
+Say they who counsel war; 'we are decreed,
+Reserved, and destined to eternal woe;
+Whatever doing, what can we suffer more,
+What can we suffer worse?' Is this, then, worst--
+Thus sitting, thus consulting, thus in arms?
+What when we fled amain, pursued and struck
+With Heaven's afflicting thunder, and besought
+The Deep to shelter us? This Hell then seemed
+A refuge from those wounds. Or when we lay
+Chained on the burning lake? That sure was worse.
+What if the breath that kindled those grim fires,
+Awaked, should blow them into sevenfold rage,
+And plunge us in the flames; or from above
+Should intermitted vengeance arm again
+His red right hand to plague us? What if all
+Her stores were opened, and this firmament
+Of Hell should spout her cataracts of fire,
+Impendent horrors, threatening hideous fall
+One day upon our heads; while we perhaps,
+Designing or exhorting glorious war,
+Caught in a fiery tempest, shall be hurled,
+Each on his rock transfixed, the sport and prey
+Or racking whirlwinds, or for ever sunk
+Under yon boiling ocean, wrapt in chains,
+There to converse with everlasting groans,
+Unrespited, unpitied, unreprieved,
+Ages of hopeless end? This would be worse.
+War, therefore, open or concealed, alike
+My voice dissuades; for what can force or guile
+With him, or who deceive his mind, whose eye
+Views all things at one view? He from Heaven's height
+All these our motions vain sees and derides,
+Not more almighty to resist our might
+Than wise to frustrate all our plots and wiles.
+Shall we, then, live thus vile--the race of Heaven
+Thus trampled, thus expelled, to suffer here
+Chains and these torments? Better these than worse,
+By my advice; since fate inevitable
+Subdues us, and omnipotent decree,
+The Victor's will. To suffer, as to do,
+Our strength is equal; nor the law unjust
+That so ordains. This was at first resolved,
+If we were wise, against so great a foe
+Contending, and so doubtful what might fall.
+I laugh when those who at the spear are bold
+And venturous, if that fail them, shrink, and fear
+What yet they know must follow--to endure
+Exile, or igominy, or bonds, or pain,
+The sentence of their Conqueror. This is now
+Our doom; which if we can sustain and bear,
+Our Supreme Foe in time may much remit
+His anger, and perhaps, thus far removed,
+Not mind us not offending, satisfied
+With what is punished; whence these raging fires
+Will slacken, if his breath stir not their flames.
+Our purer essence then will overcome
+Their noxious vapour; or, inured, not feel;
+Or, changed at length, and to the place conformed
+In temper and in nature, will receive
+Familiar the fierce heat; and, void of pain,
+This horror will grow mild, this darkness light;
+Besides what hope the never-ending flight
+Of future days may bring, what chance, what change
+Worth waiting--since our present lot appears
+For happy though but ill, for ill not worst,
+If we procure not to ourselves more woe."
+ Thus Belial, with words clothed in reason's garb,
+Counselled ignoble ease and peaceful sloth,
+Not peace; and after him thus Mammon spake:--
+ "Either to disenthrone the King of Heaven
+We war, if war be best, or to regain
+Our own right lost. Him to unthrone we then
+May hope, when everlasting Fate shall yield
+To fickle Chance, and Chaos judge the strife.
+The former, vain to hope, argues as vain
+The latter; for what place can be for us
+Within Heaven's bound, unless Heaven's Lord supreme
+We overpower? Suppose he should relent
+And publish grace to all, on promise made
+Of new subjection; with what eyes could we
+Stand in his presence humble, and receive
+Strict laws imposed, to celebrate his throne
+With warbled hyms, and to his Godhead sing
+Forced hallelujahs, while he lordly sits
+Our envied sovereign, and his altar breathes
+Ambrosial odours and ambrosial flowers,
+Our servile offerings? This must be our task
+In Heaven, this our delight. How wearisome
+Eternity so spent in worship paid
+To whom we hate! Let us not then pursue,
+By force impossible, by leave obtained
+Unacceptable, though in Heaven, our state
+Of splendid vassalage; but rather seek
+Our own good from ourselves, and from our own
+Live to ourselves, though in this vast recess,
+Free and to none accountable, preferring
+Hard liberty before the easy yoke
+Of servile pomp. Our greatness will appear
+Then most conspicuous when great things of small,
+Useful of hurtful, prosperous of adverse,
+We can create, and in what place soe'er
+Thrive under evil, and work ease out of pain
+Through labour and endurance. This deep world
+Of darkness do we dread? How oft amidst
+Thick clouds and dark doth Heaven's all-ruling Sire
+Choose to reside, his glory unobscured,
+And with the majesty of darkness round
+Covers his throne, from whence deep thunders roar.
+Mustering their rage, and Heaven resembles Hell!
+As he our darkness, cannot we his light
+Imitate when we please? This desert soil
+Wants not her hidden lustre, gems and gold;
+Nor want we skill or art from whence to raise
+Magnificence; and what can Heaven show more?
+Our torments also may, in length of time,
+Become our elements, these piercing fires
+As soft as now severe, our temper changed
+Into their temper; which must needs remove
+The sensible of pain. All things invite
+To peaceful counsels, and the settled state
+Of order, how in safety best we may
+Compose our present evils, with regard
+Of what we are and where, dismissing quite
+All thoughts of war. Ye have what I advise."
+ He scarce had finished, when such murmur filled
+Th' assembly as when hollow rocks retain
+The sound of blustering winds, which all night long
+Had roused the sea, now with hoarse cadence lull
+Seafaring men o'erwatched, whose bark by chance
+Or pinnace, anchors in a craggy bay
+After the tempest. Such applause was heard
+As Mammon ended, and his sentence pleased,
+Advising peace: for such another field
+They dreaded worse than Hell; so much the fear
+Of thunder and the sword of Michael
+Wrought still within them; and no less desire
+To found this nether empire, which might rise,
+By policy and long process of time,
+In emulation opposite to Heaven.
+Which when Beelzebub perceived--than whom,
+Satan except, none higher sat--with grave
+Aspect he rose, and in his rising seemed
+A pillar of state. Deep on his front engraven
+Deliberation sat, and public care;
+And princely counsel in his face yet shone,
+Majestic, though in ruin. Sage he stood
+With Atlantean shoulders, fit to bear
+The weight of mightiest monarchies; his look
+Drew audience and attention still as night
+Or summer's noontide air, while thus he spake:--
+ "Thrones and Imperial Powers, Offspring of Heaven,
+Ethereal Virtues! or these titles now
+Must we renounce, and, changing style, be called
+Princes of Hell? for so the popular vote
+Inclines--here to continue, and build up here
+A growing empire; doubtless! while we dream,
+And know not that the King of Heaven hath doomed
+This place our dungeon, not our safe retreat
+Beyond his potent arm, to live exempt
+From Heaven's high jurisdiction, in new league
+Banded against his throne, but to remain
+In strictest bondage, though thus far removed,
+Under th' inevitable curb, reserved
+His captive multitude. For he, to be sure,
+In height or depth, still first and last will reign
+Sole king, and of his kingdom lose no part
+By our revolt, but over Hell extend
+His empire, and with iron sceptre rule
+Us here, as with his golden those in Heaven.
+What sit we then projecting peace and war?
+War hath determined us and foiled with loss
+Irreparable; terms of peace yet none
+Vouchsafed or sought; for what peace will be given
+To us enslaved, but custody severe,
+And stripes and arbitrary punishment
+Inflicted? and what peace can we return,
+But, to our power, hostility and hate,
+Untamed reluctance, and revenge, though slow,
+Yet ever plotting how the Conqueror least
+May reap his conquest, and may least rejoice
+In doing what we most in suffering feel?
+Nor will occasion want, nor shall we need
+With dangerous expedition to invade
+Heaven, whose high walls fear no assault or siege,
+Or ambush from the Deep. What if we find
+Some easier enterprise? There is a place
+(If ancient and prophetic fame in Heaven
+Err not)--another World, the happy seat
+Of some new race, called Man, about this time
+To be created like to us, though less
+In power and excellence, but favoured more
+Of him who rules above; so was his will
+Pronounced among the Gods, and by an oath
+That shook Heaven's whole circumference confirmed.
+Thither let us bend all our thoughts, to learn
+What creatures there inhabit, of what mould
+Or substance, how endued, and what their power
+And where their weakness: how attempted best,
+By force of subtlety. Though Heaven be shut,
+And Heaven's high Arbitrator sit secure
+In his own strength, this place may lie exposed,
+The utmost border of his kingdom, left
+To their defence who hold it: here, perhaps,
+Some advantageous act may be achieved
+By sudden onset--either with Hell-fire
+To waste his whole creation, or possess
+All as our own, and drive, as we were driven,
+The puny habitants; or, if not drive,
+Seduce them to our party, that their God
+May prove their foe, and with repenting hand
+Abolish his own works. This would surpass
+Common revenge, and interrupt his joy
+In our confusion, and our joy upraise
+In his disturbance; when his darling sons,
+Hurled headlong to partake with us, shall curse
+Their frail original, and faded bliss--
+Faded so soon! Advise if this be worth
+Attempting, or to sit in darkness here
+Hatching vain empires." Thus beelzebub
+Pleaded his devilish counsel--first devised
+By Satan, and in part proposed: for whence,
+But from the author of all ill, could spring
+So deep a malice, to confound the race
+Of mankind in one root, and Earth with Hell
+To mingle and involve, done all to spite
+The great Creator? But their spite still serves
+His glory to augment. The bold design
+Pleased highly those infernal States, and joy
+Sparkled in all their eyes: with full assent
+They vote: whereat his speech he thus renews:--
+"Well have ye judged, well ended long debate,
+Synod of Gods, and, like to what ye are,
+Great things resolved, which from the lowest deep
+Will once more lift us up, in spite of fate,
+Nearer our ancient seat--perhaps in view
+Of those bright confines, whence, with neighbouring arms,
+And opportune excursion, we may chance
+Re-enter Heaven; or else in some mild zone
+Dwell, not unvisited of Heaven's fair light,
+Secure, and at the brightening orient beam
+Purge off this gloom: the soft delicious air,
+To heal the scar of these corrosive fires,
+Shall breathe her balm. But, first, whom shall we send
+In search of this new World? whom shall we find
+Sufficient? who shall tempt with wandering feet
+The dark, unbottomed, infinite Abyss,
+And through the palpable obscure find out
+His uncouth way, or spread his airy flight,
+Upborne with indefatigable wings
+Over the vast abrupt, ere he arrive
+The happy Isle? What strength, what art, can then
+Suffice, or what evasion bear him safe,
+Through the strict senteries and stations thick
+Of Angels watching round? Here he had need
+All circumspection: and we now no less
+Choice in our suffrage; for on whom we send
+The weight of all, and our last hope, relies."
+ This said, he sat; and expectation held
+His look suspense, awaiting who appeared
+To second, or oppose, or undertake
+The perilous attempt. But all sat mute,
+Pondering the danger with deep thoughts; and each
+In other's countenance read his own dismay,
+Astonished. None among the choice and prime
+Of those Heaven-warring champions could be found
+So hardy as to proffer or accept,
+Alone, the dreadful voyage; till, at last,
+Satan, whom now transcendent glory raised
+Above his fellows, with monarchal pride
+Conscious of highest worth, unmoved thus spake:--
+ "O Progeny of Heaven! Empyreal Thrones!
+With reason hath deep silence and demur
+Seized us, though undismayed. Long is the way
+And hard, that out of Hell leads up to light.
+Our prison strong, this huge convex of fire,
+Outrageous to devour, immures us round
+Ninefold; and gates of burning adamant,
+Barred over us, prohibit all egress.
+These passed, if any pass, the void profound
+Of unessential Night receives him next,
+Wide-gaping, and with utter loss of being
+Threatens him, plunged in that abortive gulf.
+If thence he scape, into whatever world,
+Or unknown region, what remains him less
+Than unknown dangers, and as hard escape?
+But I should ill become this throne, O Peers,
+And this imperial sovereignty, adorned
+With splendour, armed with power, if aught proposed
+And judged of public moment in the shape
+Of difficulty or danger, could deter
+Me from attempting. Wherefore do I assume
+These royalties, and not refuse to reign,
+Refusing to accept as great a share
+Of hazard as of honour, due alike
+To him who reigns, and so much to him due
+Of hazard more as he above the rest
+High honoured sits? Go, therefore, mighty Powers,
+Terror of Heaven, though fallen; intend at home,
+While here shall be our home, what best may ease
+The present misery, and render Hell
+More tolerable; if there be cure or charm
+To respite, or deceive, or slack the pain
+Of this ill mansion: intermit no watch
+Against a wakeful foe, while I abroad
+Through all the coasts of dark destruction seek
+Deliverance for us all. This enterprise
+None shall partake with me." Thus saying, rose
+The Monarch, and prevented all reply;
+Prudent lest, from his resolution raised,
+Others among the chief might offer now,
+Certain to be refused, what erst they feared,
+And, so refused, might in opinion stand
+His rivals, winning cheap the high repute
+Which he through hazard huge must earn. But they
+Dreaded not more th' adventure than his voice
+Forbidding; and at once with him they rose.
+Their rising all at once was as the sound
+Of thunder heard remote. Towards him they bend
+With awful reverence prone, and as a God
+Extol him equal to the Highest in Heaven.
+Nor failed they to express how much they praised
+That for the general safety he despised
+His own: for neither do the Spirits damned
+Lose all their virtue; lest bad men should boast
+Their specious deeds on earth, which glory excites,
+Or close ambition varnished o'er with zeal.
+ Thus they their doubtful consultations dark
+Ended, rejoicing in their matchless Chief:
+As, when from mountain-tops the dusky clouds
+Ascending, while the north wind sleeps, o'erspread
+Heaven's cheerful face, the louring element
+Scowls o'er the darkened landscape snow or shower,
+If chance the radiant sun, with farewell sweet,
+Extend his evening beam, the fields revive,
+The birds their notes renew, and bleating herds
+Attest their joy, that hill and valley rings.
+O shame to men! Devil with devil damned
+Firm concord holds; men only disagree
+Of creatures rational, though under hope
+Of heavenly grace, and, God proclaiming peace,
+Yet live in hatred, enmity, and strife
+Among themselves, and levy cruel wars
+Wasting the earth, each other to destroy:
+As if (which might induce us to accord)
+Man had not hellish foes enow besides,
+That day and night for his destruction wait!
+ The Stygian council thus dissolved; and forth
+In order came the grand infernal Peers:
+Midst came their mighty Paramount, and seemed
+Alone th' antagonist of Heaven, nor less
+Than Hell's dread Emperor, with pomp supreme,
+And god-like imitated state: him round
+A globe of fiery Seraphim enclosed
+With bright emblazonry, and horrent arms.
+Then of their session ended they bid cry
+With trumpet's regal sound the great result:
+Toward the four winds four speedy Cherubim
+Put to their mouths the sounding alchemy,
+By herald's voice explained; the hollow Abyss
+Heard far adn wide, and all the host of Hell
+With deafening shout returned them loud acclaim.
+Thence more at ease their minds, and somewhat raised
+By false presumptuous hope, the ranged Powers
+Disband; and, wandering, each his several way
+Pursues, as inclination or sad choice
+Leads him perplexed, where he may likeliest find
+Truce to his restless thoughts, and entertain
+The irksome hours, till his great Chief return.
+Part on the plain, or in the air sublime,
+Upon the wing or in swift race contend,
+As at th' Olympian games or Pythian fields;
+Part curb their fiery steeds, or shun the goal
+With rapid wheels, or fronted brigades form:
+As when, to warn proud cities, war appears
+Waged in the troubled sky, and armies rush
+To battle in the clouds; before each van
+Prick forth the airy knights, and couch their spears,
+Till thickest legions close; with feats of arms
+From either end of heaven the welkin burns.
+Others, with vast Typhoean rage, more fell,
+Rend up both rocks and hills, and ride the air
+In whirlwind; Hell scarce holds the wild uproar:--
+As when Alcides, from Oechalia crowned
+With conquest, felt th' envenomed robe, and tore
+Through pain up by the roots Thessalian pines,
+And Lichas from the top of Oeta threw
+Into th' Euboic sea. Others, more mild,
+Retreated in a silent valley, sing
+With notes angelical to many a harp
+Their own heroic deeds, and hapless fall
+By doom of battle, and complain that Fate
+Free Virtue should enthrall to Force or Chance.
+Their song was partial; but the harmony
+(What could it less when Spirits immortal sing?)
+Suspended Hell, and took with ravishment
+The thronging audience. In discourse more sweet
+(For Eloquence the Soul, Song charms the Sense)
+Others apart sat on a hill retired,
+In thoughts more elevate, and reasoned high
+Of Providence, Foreknowledge, Will, and Fate--
+Fixed fate, free will, foreknowledge absolute,
+And found no end, in wandering mazes lost.
+Of good and evil much they argued then,
+Of happiness and final misery,
+Passion and apathy, and glory and shame:
+Vain wisdom all, and false philosophy!--
+Yet, with a pleasing sorcery, could charm
+Pain for a while or anguish, and excite
+Fallacious hope, or arm th' obdured breast
+With stubborn patience as with triple steel.
+Another part, in squadrons and gross bands,
+On bold adventure to discover wide
+That dismal world, if any clime perhaps
+Might yield them easier habitation, bend
+Four ways their flying march, along the banks
+Of four infernal rivers, that disgorge
+Into the burning lake their baleful streams--
+Abhorred Styx, the flood of deadly hate;
+Sad Acheron of sorrow, black and deep;
+Cocytus, named of lamentation loud
+Heard on the rueful stream; fierce Phlegeton,
+Whose waves of torrent fire inflame with rage.
+Far off from these, a slow and silent stream,
+Lethe, the river of oblivion, rolls
+Her watery labyrinth, whereof who drinks
+Forthwith his former state and being forgets--
+Forgets both joy and grief, pleasure and pain.
+Beyond this flood a frozen continent
+Lies dark and wild, beat with perpetual storms
+Of whirlwind and dire hail, which on firm land
+Thaws not, but gathers heap, and ruin seems
+Of ancient pile; all else deep snow and ice,
+A gulf profound as that Serbonian bog
+Betwixt Damiata and Mount Casius old,
+Where armies whole have sunk: the parching air
+Burns frore, and cold performs th' effect of fire.
+Thither, by harpy-footed Furies haled,
+At certain revolutions all the damned
+Are brought; and feel by turns the bitter change
+Of fierce extremes, extremes by change more fierce,
+From beds of raging fire to starve in ice
+Their soft ethereal warmth, and there to pine
+Immovable, infixed, and frozen round
+Periods of time,--thence hurried back to fire.
+They ferry over this Lethean sound
+Both to and fro, their sorrow to augment,
+And wish and struggle, as they pass, to reach
+The tempting stream, with one small drop to lose
+In sweet forgetfulness all pain and woe,
+All in one moment, and so near the brink;
+But Fate withstands, and, to oppose th' attempt,
+Medusa with Gorgonian terror guards
+The ford, and of itself the water flies
+All taste of living wight, as once it fled
+The lip of Tantalus. Thus roving on
+In confused march forlorn, th' adventurous bands,
+With shuddering horror pale, and eyes aghast,
+Viewed first their lamentable lot, and found
+No rest. Through many a dark and dreary vale
+They passed, and many a region dolorous,
+O'er many a frozen, many a fiery alp,
+Rocks, caves, lakes, fens, bogs, dens, and shades of death--
+A universe of death, which God by curse
+Created evil, for evil only good;
+Where all life dies, death lives, and Nature breeds,
+Perverse, all monstrous, all prodigious things,
+Obominable, inutterable, and worse
+Than fables yet have feigned or fear conceived,
+Gorgons, and Hydras, and Chimeras dire.
+ Meanwhile the Adversary of God and Man,
+Satan, with thoughts inflamed of highest design,
+Puts on swift wings, and toward the gates of Hell
+Explores his solitary flight: sometimes
+He scours the right hand coast, sometimes the left;
+Now shaves with level wing the deep, then soars
+Up to the fiery concave towering high.
+As when far off at sea a fleet descried
+Hangs in the clouds, by equinoctial winds
+Close sailing from Bengala, or the isles
+Of Ternate and Tidore, whence merchants bring
+Their spicy drugs; they on the trading flood,
+Through the wide Ethiopian to the Cape,
+Ply stemming nightly toward the pole: so seemed
+Far off the flying Fiend. At last appear
+Hell-bounds, high reaching to the horrid roof,
+And thrice threefold the gates; three folds were brass,
+Three iron, three of adamantine rock,
+Impenetrable, impaled with circling fire,
+Yet unconsumed. Before the gates there sat
+On either side a formidable Shape.
+The one seemed woman to the waist, and fair,
+But ended foul in many a scaly fold,
+Voluminous and vast--a serpent armed
+With mortal sting. About her middle round
+A cry of Hell-hounds never-ceasing barked
+With wide Cerberean mouths full loud, and rung
+A hideous peal; yet, when they list, would creep,
+If aught disturbed their noise, into her womb,
+And kennel there; yet there still barked and howled
+Within unseen. Far less abhorred than these
+Vexed Scylla, bathing in the sea that parts
+Calabria from the hoarse Trinacrian shore;
+Nor uglier follow the night-hag, when, called
+In secret, riding through the air she comes,
+Lured with the smell of infant blood, to dance
+With Lapland witches, while the labouring moon
+Eclipses at their charms. The other Shape--
+If shape it might be called that shape had none
+Distinguishable in member, joint, or limb;
+Or substance might be called that shadow seemed,
+For each seemed either--black it stood as Night,
+Fierce as ten Furies, terrible as Hell,
+And shook a dreadful dart: what seemed his head
+The likeness of a kingly crown had on.
+Satan was now at hand, and from his seat
+The monster moving onward came as fast
+With horrid strides; Hell trembled as he strode.
+Th' undaunted Fiend what this might be admired--
+Admired, not feared (God and his Son except,
+Created thing naught valued he nor shunned),
+And with disdainful look thus first began:--
+ "Whence and what art thou, execrable Shape,
+That dar'st, though grim and terrible, advance
+Thy miscreated front athwart my way
+To yonder gates? Through them I mean to pass,
+That be assured, without leave asked of thee.
+Retire; or taste thy folly, and learn by proof,
+Hell-born, not to contend with Spirits of Heaven."
+ To whom the Goblin, full of wrath, replied:--
+"Art thou that traitor Angel? art thou he,
+Who first broke peace in Heaven and faith, till then
+Unbroken, and in proud rebellious arms
+Drew after him the third part of Heaven's sons,
+Conjured against the Highest--for which both thou
+And they, outcast from God, are here condemned
+To waste eternal days in woe and pain?
+And reckon'st thou thyself with Spirits of Heaven
+Hell-doomed, and breath'st defiance here and scorn,
+Where I reign king, and, to enrage thee more,
+Thy king and lord? Back to thy punishment,
+False fugitive; and to thy speed add wings,
+Lest with a whip of scorpions I pursue
+Thy lingering, or with one stroke of this dart
+Strange horror seize thee, and pangs unfelt before."
+ So spake the grisly Terror, and in shape,
+So speaking and so threatening, grew tenfold,
+More dreadful and deform. On th' other side,
+Incensed with indignation, Satan stood
+Unterrified, and like a comet burned,
+That fires the length of Ophiuchus huge
+In th' arctic sky, and from his horrid hair
+Shakes pestilence and war. Each at the head
+Levelled his deadly aim; their fatal hands
+No second stroke intend; and such a frown
+Each cast at th' other as when two black clouds,
+With heaven's artillery fraught, came rattling on
+Over the Caspian,--then stand front to front
+Hovering a space, till winds the signal blow
+To join their dark encounter in mid-air.
+So frowned the mighty combatants that Hell
+Grew darker at their frown; so matched they stood;
+For never but once more was wither like
+To meet so great a foe. And now great deeds
+Had been achieved, whereof all Hell had rung,
+Had not the snaky Sorceress, that sat
+Fast by Hell-gate and kept the fatal key,
+Risen, and with hideous outcry rushed between.
+ "O father, what intends thy hand," she cried,
+"Against thy only son? What fury, O son,
+Possesses thee to bend that mortal dart
+Against thy father's head? And know'st for whom?
+For him who sits above, and laughs the while
+At thee, ordained his drudge to execute
+Whate'er his wrath, which he calls justice, bids--
+His wrath, which one day will destroy ye both!"
+ She spake, and at her words the hellish Pest
+Forbore: then these to her Satan returned:--
+ "So strange thy outcry, and thy words so strange
+Thou interposest, that my sudden hand,
+Prevented, spares to tell thee yet by deeds
+What it intends, till first I know of thee
+What thing thou art, thus double-formed, and why,
+In this infernal vale first met, thou call'st
+Me father, and that phantasm call'st my son.
+I know thee not, nor ever saw till now
+Sight more detestable than him and thee."
+ T' whom thus the Portress of Hell-gate replied:--
+"Hast thou forgot me, then; and do I seem
+Now in thine eye so foul?--once deemed so fair
+In Heaven, when at th' assembly, and in sight
+Of all the Seraphim with thee combined
+In bold conspiracy against Heaven's King,
+All on a sudden miserable pain
+Surprised thee, dim thine eyes and dizzy swum
+In darkness, while thy head flames thick and fast
+Threw forth, till on the left side opening wide,
+Likest to thee in shape and countenance bright,
+Then shining heavenly fair, a goddess armed,
+Out of thy head I sprung. Amazement seized
+All th' host of Heaven; back they recoiled afraid
+At first, and called me Sin, and for a sign
+Portentous held me; but, familiar grown,
+I pleased, and with attractive graces won
+The most averse--thee chiefly, who, full oft
+Thyself in me thy perfect image viewing,
+Becam'st enamoured; and such joy thou took'st
+With me in secret that my womb conceived
+A growing burden. Meanwhile war arose,
+And fields were fought in Heaven: wherein remained
+(For what could else?) to our Almighty Foe
+Clear victory; to our part loss and rout
+Through all the Empyrean. Down they fell,
+Driven headlong from the pitch of Heaven, down
+Into this Deep; and in the general fall
+I also: at which time this powerful key
+Into my hands was given, with charge to keep
+These gates for ever shut, which none can pass
+Without my opening. Pensive here I sat
+Alone; but long I sat not, till my womb,
+Pregnant by thee, and now excessive grown,
+Prodigious motion felt and rueful throes.
+At last this odious offspring whom thou seest,
+Thine own begotten, breaking violent way,
+Tore through my entrails, that, with fear and pain
+Distorted, all my nether shape thus grew
+Transformed: but he my inbred enemy
+Forth issued, brandishing his fatal dart,
+Made to destroy. I fled, and cried out Death!
+Hell trembled at the hideous name, and sighed
+From all her caves, and back resounded Death!
+I fled; but he pursued (though more, it seems,
+Inflamed with lust than rage), and, swifter far,
+Me overtook, his mother, all dismayed,
+And, in embraces forcible and foul
+Engendering with me, of that rape begot
+These yelling monsters, that with ceaseless cry
+Surround me, as thou saw'st--hourly conceived
+And hourly born, with sorrow infinite
+To me; for, when they list, into the womb
+That bred them they return, and howl, and gnaw
+My bowels, their repast; then, bursting forth
+Afresh, with conscious terrors vex me round,
+That rest or intermission none I find.
+Before mine eyes in opposition sits
+Grim Death, my son and foe, who set them on,
+And me, his parent, would full soon devour
+For want of other prey, but that he knows
+His end with mine involved, and knows that I
+Should prove a bitter morsel, and his bane,
+Whenever that shall be: so Fate pronounced.
+But thou, O father, I forewarn thee, shun
+His deadly arrow; neither vainly hope
+To be invulnerable in those bright arms,
+Through tempered heavenly; for that mortal dint,
+Save he who reigns above, none can resist."
+ She finished; and the subtle Fiend his lore
+Soon learned, now milder, and thus answered smooth:--
+ "Dear daughter--since thou claim'st me for thy sire,
+And my fair son here show'st me, the dear pledge
+Of dalliance had with thee in Heaven, and joys
+Then sweet, now sad to mention, through dire change
+Befallen us unforeseen, unthought-of--know,
+I come no enemy, but to set free
+From out this dark and dismal house of pain
+Both him and thee, and all the heavenly host
+Of Spirits that, in our just pretences armed,
+Fell with us from on high. From them I go
+This uncouth errand sole, and one for all
+Myself expose, with lonely steps to tread
+Th' unfounded Deep, and through the void immense
+To search, with wandering quest, a place foretold
+Should be--and, by concurring signs, ere now
+Created vast and round--a place of bliss
+In the purlieus of Heaven; and therein placed
+A race of upstart creatures, to supply
+Perhaps our vacant room, though more removed,
+Lest Heaven, surcharged with potent multitude,
+Might hap to move new broils. Be this, or aught
+Than this more secret, now designed, I haste
+To know; and, this once known, shall soon return,
+And bring ye to the place where thou and Death
+Shall dwell at ease, and up and down unseen
+Wing silently the buxom air, embalmed
+With odours. There ye shall be fed and filled
+Immeasurably; all things shall be your prey."
+ He ceased; for both seemed highly pleased, and Death
+Grinned horrible a ghastly smile, to hear
+His famine should be filled, and blessed his maw
+Destined to that good hour. No less rejoiced
+His mother bad, and thus bespake her sire:--
+ "The key of this infernal Pit, by due
+And by command of Heaven's all-powerful King,
+I keep, by him forbidden to unlock
+These adamantine gates; against all force
+Death ready stands to interpose his dart,
+Fearless to be o'ermatched by living might.
+But what owe I to his commands above,
+Who hates me, and hath hither thrust me down
+Into this gloom of Tartarus profound,
+To sit in hateful office here confined,
+Inhabitant of Heaven and heavenly born--
+Here in perpetual agony and pain,
+With terrors and with clamours compassed round
+Of mine own brood, that on my bowels feed?
+Thou art my father, thou my author, thou
+My being gav'st me; whom should I obey
+But thee? whom follow? Thou wilt bring me soon
+To that new world of light and bliss, among
+The gods who live at ease, where I shall reign
+At thy right hand voluptuous, as beseems
+Thy daughter and thy darling, without end."
+ Thus saying, from her side the fatal key,
+Sad instrument of all our woe, she took;
+And, towards the gate rolling her bestial train,
+Forthwith the huge portcullis high up-drew,
+Which, but herself, not all the Stygian Powers
+Could once have moved; then in the key-hole turns
+Th' intricate wards, and every bolt and bar
+Of massy iron or solid rock with ease
+Unfastens. On a sudden open fly,
+With impetuous recoil and jarring sound,
+Th' infernal doors, and on their hinges grate
+Harsh thunder, that the lowest bottom shook
+Of Erebus. She opened; but to shut
+Excelled her power: the gates wide open stood,
+That with extended wings a bannered host,
+Under spread ensigns marching, mibht pass through
+With horse and chariots ranked in loose array;
+So wide they stood, and like a furnace-mouth
+Cast forth redounding smoke and ruddy flame.
+Before their eyes in sudden view appear
+The secrets of the hoary Deep--a dark
+Illimitable ocean, without bound,
+Without dimension; where length, breadth, and height,
+And time, and place, are lost; where eldest Night
+And Chaos, ancestors of Nature, hold
+Eternal anarchy, amidst the noise
+Of endless wars, and by confusion stand.
+For Hot, Cold, Moist, and Dry, four champions fierce,
+Strive here for mastery, and to battle bring
+Their embryon atoms: they around the flag
+Of each his faction, in their several clans,
+Light-armed or heavy, sharp, smooth, swift, or slow,
+Swarm populous, unnumbered as the sands
+Of Barca or Cyrene's torrid soil,
+Levied to side with warring winds, and poise
+Their lighter wings. To whom these most adhere
+He rules a moment: Chaos umpire sits,
+And by decision more embroils the fray
+By which he reigns: next him, high arbiter,
+Chance governs all. Into this wild Abyss,
+The womb of Nature, and perhaps her grave,
+Of neither sea, nor shore, nor air, nor fire,
+But all these in their pregnant causes mixed
+Confusedly, and which thus must ever fight,
+Unless th' Almighty Maker them ordain
+His dark materials to create more worlds--
+Into this wild Abyss the wary Fiend
+Stood on the brink of Hell and looked a while,
+Pondering his voyage; for no narrow frith
+He had to cross. Nor was his ear less pealed
+With noises loud and ruinous (to compare
+Great things with small) than when Bellona storms
+With all her battering engines, bent to rase
+Some capital city; or less than if this frame
+Of Heaven were falling, and these elements
+In mutiny had from her axle torn
+The steadfast Earth. At last his sail-broad vans
+He spread for flight, and, in the surging smoke
+Uplifted, spurns the ground; thence many a league,
+As in a cloudy chair, ascending rides
+Audacious; but, that seat soon failing, meets
+A vast vacuity. All unawares,
+Fluttering his pennons vain, plumb-down he drops
+Ten thousand fathom deep, and to this hour
+Down had been falling, had not, by ill chance,
+The strong rebuff of some tumultuous cloud,
+Instinct with fire and nitre, hurried him
+As many miles aloft. That fury stayed--
+Quenched in a boggy Syrtis, neither sea,
+Nor good dry land--nigh foundered, on he fares,
+Treading the crude consistence, half on foot,
+Half flying; behoves him now both oar and sail.
+As when a gryphon through the wilderness
+With winged course, o'er hill or moory dale,
+Pursues the Arimaspian, who by stealth
+Had from his wakeful custody purloined
+The guarded gold; so eagerly the Fiend
+O'er bog or steep, through strait, rough, dense, or rare,
+With head, hands, wings, or feet, pursues his way,
+And swims, or sinks, or wades, or creeps, or flies.
+At length a universal hubbub wild
+Of stunning sounds, and voices all confused,
+Borne through the hollow dark, assaults his ear
+With loudest vehemence. Thither he plies
+Undaunted, to meet there whatever Power
+Or Spirit of the nethermost Abyss
+Might in that noise reside, of whom to ask
+Which way the nearest coast of darkness lies
+Bordering on light; when straight behold the throne
+Of Chaos, and his dark pavilion spread
+Wide on the wasteful Deep! With him enthroned
+Sat sable-vested Night, eldest of things,
+The consort of his reign; and by them stood
+Orcus and Ades, and the dreaded name
+Of Demogorgon; Rumour next, and Chance,
+And Tumult, and Confusion, all embroiled,
+And Discord with a thousand various mouths.
+ T' whom Satan, turning boldly, thus:--"Ye Powers
+And Spirtis of this nethermost Abyss,
+Chaos and ancient Night, I come no spy
+With purpose to explore or to disturb
+The secrets of your realm; but, by constraint
+Wandering this darksome desert, as my way
+Lies through your spacious empire up to light,
+Alone and without guide, half lost, I seek,
+What readiest path leads where your gloomy bounds
+Confine with Heaven; or, if some other place,
+From your dominion won, th' Ethereal King
+Possesses lately, thither to arrive
+I travel this profound. Direct my course:
+Directed, no mean recompense it brings
+To your behoof, if I that region lost,
+All usurpation thence expelled, reduce
+To her original darkness and your sway
+(Which is my present journey), and once more
+Erect the standard there of ancient Night.
+Yours be th' advantage all, mine the revenge!"
+ Thus Satan; and him thus the Anarch old,
+With faltering speech and visage incomposed,
+Answered: "I know thee, stranger, who thou art-- ***
+That mighty leading Angel, who of late
+Made head against Heaven's King, though overthrown.
+I saw and heard; for such a numerous host
+Fled not in silence through the frighted Deep,
+With ruin upon ruin, rout on rout,
+Confusion worse confounded; and Heaven-gates
+Poured out by millions her victorious bands,
+Pursuing. I upon my frontiers here
+Keep residence; if all I can will serve
+That little which is left so to defend,
+Encroached on still through our intestine broils
+Weakening the sceptre of old Night: first, Hell,
+Your dungeon, stretching far and wide beneath;
+Now lately Heaven and Earth, another world
+Hung o'er my realm, linked in a golden chain
+To that side Heaven from whence your legions fell!
+If that way be your walk, you have not far;
+So much the nearer danger. Go, and speed;
+Havoc, and spoil, and ruin, are my gain."
+ He ceased; and Satan stayed not to reply,
+But, glad that now his sea should find a shore,
+With fresh alacrity and force renewed
+Springs upward, like a pyramid of fire,
+Into the wild expanse, and through the shock
+Of fighting elements, on all sides round
+Environed, wins his way; harder beset
+And more endangered than when Argo passed
+Through Bosporus betwixt the justling rocks,
+Or when Ulysses on the larboard shunned
+Charybdis, and by th' other whirlpool steered.
+So he with difficulty and labour hard
+Moved on, with difficulty and labour he;
+But, he once passed, soon after, when Man fell,
+Strange alteration! Sin and Death amain,
+Following his track (such was the will of Heaven)
+Paved after him a broad and beaten way
+Over the dark Abyss, whose boiling gulf
+Tamely endured a bridge of wondrous length,
+From Hell continued, reaching th' utmost orb
+Of this frail World; by which the Spirits perverse
+With easy intercourse pass to and fro
+To tempt or punish mortals, except whom
+God and good Angels guard by special grace.
+ But now at last the sacred influence
+Of light appears, and from the walls of Heaven
+Shoots far into the bosom of dim Night
+A glimmering dawn. Here Nature first begins
+Her farthest verge, and Chaos to retire,
+As from her outmost works, a broken foe,
+With tumult less and with less hostile din;
+That Satan with less toil, and now with ease,
+Wafts on the calmer wave by dubious light,
+And, like a weather-beaten vessel, holds
+Gladly the port, though shrouds and tackle torn;
+Or in the emptier waste, resembling air,
+Weighs his spread wings, at leisure to behold
+Far off th' empyreal Heaven, extended wide
+In circuit, undetermined square or round,
+With opal towers and battlements adorned
+Of living sapphire, once his native seat;
+And, fast by, hanging in a golden chain,
+This pendent World, in bigness as a star
+Of smallest magnitude close by the moon.
+Thither, full fraught with mischievous revenge,
+Accursed, and in a cursed hour, he hies.
+
+
+
+Book III
+
+
+Hail, holy Light, offspring of Heaven firstborn,
+Or of the Eternal coeternal beam
+May I express thee unblam'd? since God is light,
+And never but in unapproached light
+Dwelt from eternity, dwelt then in thee
+Bright effluence of bright essence increate.
+Or hear"st thou rather pure ethereal stream,
+Whose fountain who shall tell? before the sun,
+Before the Heavens thou wert, and at the voice
+Of God, as with a mantle, didst invest ***
+The rising world of waters dark and deep,
+Won from the void and formless infinite.
+Thee I re-visit now with bolder wing,
+Escap'd the Stygian pool, though long detain'd
+In that obscure sojourn, while in my flight
+Through utter and through middle darkness borne,
+With other notes than to the Orphean lyre
+I sung of Chaos and eternal Night;
+Taught by the heavenly Muse to venture down
+The dark descent, and up to re-ascend,
+Though hard and rare: Thee I revisit safe,
+And feel thy sovran vital lamp; but thou
+Revisit'st not these eyes, that roll in vain
+To find thy piercing ray, and find no dawn;
+So thick a drop serene hath quench'd their orbs,
+Or dim suffusion veil'd. Yet not the more
+Cease I to wander, where the Muses haunt,
+Clear spring, or shady grove, or sunny hill,
+Smit with the love of sacred song; but chief
+Thee, Sion, and the flowery brooks beneath,
+That wash thy hallow'd feet, and warbling flow,
+Nightly I visit: nor sometimes forget
+So were I equall'd with them in renown,
+Thy sovran command, that Man should find grace;
+Blind Thamyris, and blind Maeonides,
+And Tiresias, and Phineus, prophets old:
+Then feed on thoughts, that voluntary move
+Harmonious numbers; as the wakeful bird
+Sings darkling, and in shadiest covert hid
+Tunes her nocturnal note. Thus with the year
+Seasons return; but not to me returns
+Day, or the sweet approach of even or morn,
+Or sight of vernal bloom, or summer's rose,
+Or flocks, or herds, or human face divine;
+But cloud instead, and ever-during dark
+Surrounds me, from the cheerful ways of men
+Cut off, and for the book of knowledge fair
+Presented with a universal blank
+Of nature's works to me expung'd and ras'd,
+And wisdom at one entrance quite shut out.
+So much the rather thou, celestial Light,
+Shine inward, and the mind through all her powers
+Irradiate; there plant eyes, all mist from thence
+Purge and disperse, that I may see and tell
+Of things invisible to mortal sight.
+Now had the Almighty Father from above,
+From the pure empyrean where he sits
+High thron'd above all highth, bent down his eye
+His own works and their works at once to view:
+About him all the Sanctities of Heaven
+Stood thick as stars, and from his sight receiv'd
+Beatitude past utterance; on his right
+The radiant image of his glory sat,
+His only son; on earth he first beheld
+Our two first parents, yet the only two
+Of mankind in the happy garden plac'd
+Reaping immortal fruits of joy and love,
+Uninterrupted joy, unrivall'd love,
+In blissful solitude; he then survey'd
+Hell and the gulf between, and Satan there
+Coasting the wall of Heaven on this side Night
+In the dun air sublime, and ready now
+To stoop with wearied wings, and willing feet,
+On the bare outside of this world, that seem'd
+Firm land imbosom'd, without firmament,
+Uncertain which, in ocean or in air.
+Him God beholding from his prospect high,
+Wherein past, present, future, he beholds,
+Thus to his only Son foreseeing spake.
+Only begotten Son, seest thou what rage
+Transports our Adversary? whom no bounds
+Prescrib'd no bars of Hell, nor all the chains
+Heap'd on him there, nor yet the main abyss
+Wide interrupt, can hold; so bent he seems
+On desperate revenge, that shall redound
+Upon his own rebellious head. And now,
+Through all restraint broke loose, he wings his way
+Not far off Heaven, in the precincts of light,
+Directly towards the new created world,
+And man there plac'd, with purpose to assay
+If him by force he can destroy, or, worse,
+By some false guile pervert; and shall pervert;
+For man will hearken to his glozing lies,
+And easily transgress the sole command,
+Sole pledge of his obedience: So will fall
+He and his faithless progeny: Whose fault?
+Whose but his own? ingrate, he had of me
+All he could have; I made him just and right,
+Sufficient to have stood, though free to fall.
+Such I created all the ethereal Powers
+And Spirits, both them who stood, and them who fail'd;
+Freely they stood who stood, and fell who fell.
+Not free, what proof could they have given sincere
+Of true allegiance, constant faith or love,
+Where only what they needs must do appear'd,
+Not what they would? what praise could they receive?
+What pleasure I from such obedience paid,
+When will and reason (reason also is choice)
+Useless and vain, of freedom both despoil'd,
+Made passive both, had serv'd necessity,
+Not me? they therefore, as to right belong$ 'd,
+So were created, nor can justly accuse
+Their Maker, or their making, or their fate,
+As if predestination over-rul'd
+Their will dispos'd by absolute decree
+Or high foreknowledge they themselves decreed
+Their own revolt, not I; if I foreknew,
+Foreknowledge had no influence on their fault,
+Which had no less proved certain unforeknown.
+So without least impulse or shadow of fate,
+Or aught by me immutably foreseen,
+They trespass, authors to themselves in all
+Both what they judge, and what they choose; for so
+I form'd them free: and free they must remain,
+Till they enthrall themselves; I else must change
+Their nature, and revoke the high decree
+Unchangeable, eternal, which ordain'd
+$THeir freedom: they themselves ordain'd their fall.
+The first sort by their own suggestion fell,
+Self-tempted, self-deprav'd: Man falls, deceiv'd
+By the other first: Man therefore shall find grace,
+The other none: In mercy and justice both,
+Through Heaven and Earth, so shall my glory excel;
+But Mercy, first and last, shall brightest shine.
+Thus while God spake, ambrosial fragrance fill'd
+All Heaven, and in the blessed Spirits elect
+Sense of new joy ineffable diffus'd.
+Beyond compare the Son of God was seen
+Most glorious; in him all his Father shone
+Substantially express'd; and in his face
+Divine compassion visibly appear'd,
+Love without end, and without measure grace,
+Which uttering, thus he to his Father spake.
+O Father, gracious was that word which clos'd
+Thy sovran command, that Man should find grace;
+, that Man should find grace;
+For which both Heaven and earth shall high extol
+Thy praises, with the innumerable sound
+Of hymns and sacred songs, wherewith thy throne
+Encompass'd shall resound thee ever blest.
+For should Man finally be lost, should Man,
+Thy creature late so lov'd, thy youngest son,
+Fall circumvented thus by fraud, though join'd
+With his own folly? that be from thee far,
+That far be from thee, Father, who art judge
+Of all things made, and judgest only right.
+Or shall the Adversary thus obtain
+His end, and frustrate thine? shall he fulfill
+His malice, and thy goodness bring to nought,
+Or proud return, though to his heavier doom,
+Yet with revenge accomplish'd, and to Hell
+Draw after him the whole race of mankind,
+By him corrupted? or wilt thou thyself
+Abolish thy creation, and unmake
+For him, what for thy glory thou hast made?
+So should thy goodness and thy greatness both
+Be question'd and blasphem'd without defence.
+To whom the great Creator thus replied.
+O son, in whom my soul hath chief delight,
+Son of my bosom, Son who art alone.
+My word, my wisdom, and effectual might,
+All hast thou spoken as my thoughts are, all
+As my eternal purpose hath decreed;
+Man shall not quite be lost, but sav'd who will;
+Yet not of will in him, but grace in me
+Freely vouchsaf'd; once more I will renew
+His lapsed powers, though forfeit; and enthrall'd
+By sin to foul exorbitant desires;
+Upheld by me, yet once more he shall stand
+On even ground against his mortal foe;
+By me upheld, that he may know how frail
+His fallen condition is, and to me owe
+All his deliverance, and to none but me.
+Some I have chosen of peculiar grace,
+Elect above the rest; so is my will:
+The rest shall hear me call, and oft be warn'd
+Their sinful state, and to appease betimes
+The incensed Deity, while offer'd grace
+Invites; for I will clear their senses dark,
+What may suffice, and soften stony hearts
+To pray, repent, and bring obedience due.
+To prayer, repentance, and obedience due,
+Though but endeavour'd with sincere intent,
+Mine ear shall not be slow, mine eye not shut.
+And I will place within them as a guide,
+My umpire Conscience; whom if they will hear,
+Light after light, well us'd, they shall attain,
+And to the end, persisting, safe arrive.
+This my long sufferance, and my day of grace,
+They who neglect and scorn, shall never taste;
+But hard be harden'd, blind be blinded more,
+That they may stumble on, and deeper fall;
+And none but such from mercy I exclude.
+But yet all is not done; Man disobeying,
+Disloyal, breaks his fealty, and sins
+Against the high supremacy of Heaven,
+Affecting God-head, and, so losing all,
+To expiate his treason hath nought left,
+But to destruction sacred and devote,
+He, with his whole posterity, must die,
+Die he or justice must; unless for him
+Some other able, and as willing, pay
+The rigid satisfaction, death for death.
+Say, heavenly Powers, where shall we find such love?
+Which of you will be mortal, to redeem
+Man's mortal crime, and just the unjust to save?
+Dwells in all Heaven charity so dear?
+And silence was in Heaven: $ on Man's behalf
+He ask'd, but all the heavenly quire stood mute,
+Patron or intercessour none appear'd,
+Much less that durst upon his own head draw
+The deadly forfeiture, and ransom set.
+And now without redemption all mankind
+Must have been lost, adjudg'd to Death and Hell
+By doom severe, had not the Son of God,
+In whom the fulness dwells of love divine,
+His dearest mediation thus renew'd.
+Father, thy word is past, Man shall find grace;
+And shall grace not find means, that finds her way,
+The speediest of thy winged messengers,
+To visit all thy creatures, and to all
+Comes unprevented, unimplor'd, unsought?
+Happy for Man, so coming; he her aid
+Can never seek, once dead in sins, and lost;
+Atonement for himself, or offering meet,
+Indebted and undone, hath none to bring;
+Behold me then: me for him, life for life
+I offer: on me let thine anger fall;
+Account me Man; I for his sake will leave
+ Thy bosom, and this glory next to thee
+ Freely put off, and for him lastly die
+ Well pleased; on me let Death wreak all his rage.
+ Under his gloomy power I shall not long
+ Lie vanquished. Thou hast given me to possess
+ Life in myself for ever; by thee I live;
+ Though now to Death I yield, and am his due,
+ All that of me can die, yet, that debt paid,
+ $ thou wilt not leave me in the loathsome grave
+ His prey, nor suffer my unspotted soul
+ For ever with corruption there to dwell;
+ But I shall rise victorious, and subdue
+ My vanquisher, spoiled of his vaunted spoil.
+ Death his death's wound shall then receive, and stoop
+ Inglorious, of his mortal sting disarmed;
+ I through the ample air in triumph high
+ Shall lead Hell captive maugre Hell, and show
+The powers of darkness bound. Thou, at the sight
+ Pleased, out of Heaven shalt look down and smile,
+ While, by thee raised, I ruin all my foes;
+ Death last, and with his carcase glut the grave;
+ Then, with the multitude of my redeemed,
+ Shall enter Heaven, long absent, and return,
+ Father, to see thy face, wherein no cloud
+ Of anger shall remain, but peace assured
+ And reconcilement: wrath shall be no more
+ Thenceforth, but in thy presence joy entire.
+ His words here ended; but his meek aspect
+ Silent yet spake, and breathed immortal love
+ To mortal men, above which only shone
+ Filial obedience: as a sacrifice
+ Glad to be offered, he attends the will
+ Of his great Father. Admiration seized
+ All Heaven, what this might mean, and whither tend,
+ Wondering; but soon th' Almighty thus replied.
+ O thou in Heaven and Earth the only peace
+ Found out for mankind under wrath, O thou
+ My sole complacence! Well thou know'st how dear
+ To me are all my works; nor Man the least,
+ Though last created, that for him I spare
+ Thee from my bosom and right hand, to save,
+ By losing thee a while, the whole race lost.
+
+ 00021053
+ Thou, therefore, whom thou only canst redeem,
+ Their nature also to thy nature join;
+ And be thyself Man among men on Earth,
+ Made flesh, when time shall be, of virgin seed,
+ By wondrous birth; be thou in Adam's room
+The head of all mankind, though Adam's son.
+As in him perish all men, so in thee,
+As from a second root, shall be restored
+As many as are restored, without thee none.
+His crime makes guilty all his sons; thy merit,
+Imputed, shall absolve them who renounce
+Their own both righteous and unrighteous deeds,
+And live in thee transplanted, and from thee
+Receive new life. So Man, as is most just,
+Shall satisfy for Man, be judged and die,
+And dying rise, and rising with him raise
+His brethren, ransomed with his own dear life.
+So heavenly love shall outdo hellish hate,
+Giving to death, and dying to redeem,
+So dearly to redeem what hellish hate
+So easily destroyed, and still destroys
+In those who, when they may, accept not grace.
+Nor shalt thou, by descending to assume
+Man's nature, lessen or degrade thine own.
+Because thou hast, though throned in highest bliss
+Equal to God, and equally enjoying
+God-like fruition, quitted all, to save
+A world from utter loss, and hast been found
+By merit more than birthright Son of God,
+Found worthiest to be so by being good,
+Far more than great or high; because in thee
+Love hath abounded more than glory abounds;
+Therefore thy humiliation shall exalt
+With thee thy manhood also to this throne:
+Here shalt thou sit incarnate, here shalt reign
+Both God and Man, Son both of God and Man,
+Anointed universal King; all power
+I give thee; reign for ever, and assume
+Thy merits; under thee, as head supreme,
+Thrones, Princedoms, Powers, Dominions, I reduce:
+All knees to thee shall bow, of them that bide
+In Heaven, or Earth, or under Earth in Hell.
+When thou, attended gloriously from Heaven,
+Shalt in the sky appear, and from thee send
+The summoning Arch-Angels to proclaim
+Thy dread tribunal; forthwith from all winds,
+The living, and forthwith the cited dead
+Of all past ages, to the general doom
+Shall hasten; such a peal shall rouse their sleep.
+Then, all thy saints assembled, thou shalt judge
+Bad Men and Angels; they, arraigned, shall sink
+Beneath thy sentence; Hell, her numbers full,
+Thenceforth shall be for ever shut. Mean while
+The world shall burn, and from her ashes spring
+New Heaven and Earth, wherein the just shall dwell,
+And, after all their tribulations long,
+See golden days, fruitful of golden deeds,
+With joy and peace triumphing, and fair truth.
+Then thou thy regal scepter shalt lay by,
+For regal scepter then no more shall need,
+God shall be all in all. But, all ye Gods,
+Adore him, who to compass all this dies;
+Adore the Son, and honour him as me.
+No sooner had the Almighty ceased, but all
+The multitude of Angels, with a shout
+Loud as from numbers without number, sweet
+As from blest voices, uttering joy, Heaven rung
+With jubilee, and loud Hosannas filled
+The eternal regions: Lowly reverent
+Towards either throne they bow, and to the ground
+With solemn adoration down they cast
+Their crowns inwove with amarant and gold;
+Immortal amarant, a flower which once
+In Paradise, fast by the tree of life,
+Began to bloom; but soon for man's offence
+To Heaven removed, where first it grew, there grows,
+And flowers aloft shading the fount of life,
+And where the river of bliss through midst of Heaven
+Rolls o'er Elysian flowers her amber stream;
+With these that never fade the Spirits elect
+Bind their resplendent locks inwreathed with beams;
+Now in loose garlands thick thrown off, the bright
+Pavement, that like a sea of jasper shone,
+Impurpled with celestial roses smiled.
+Then, crowned again, their golden harps they took,
+Harps ever tuned, that glittering by their side
+Like quivers hung, and with preamble sweet
+Of charming symphony they introduce
+Their sacred song, and waken raptures high;
+No voice exempt, no voice but well could join
+Melodious part, such concord is in Heaven.
+Thee, Father, first they sung Omnipotent,
+Immutable, Immortal, Infinite,
+Eternal King; the Author of all being,
+Fonntain of light, thyself invisible
+Amidst the glorious brightness where thou sit'st
+Throned inaccessible, but when thou shadest
+The full blaze of thy beams, and, through a cloud
+Drawn round about thee like a radiant shrine,
+Dark with excessive bright thy skirts appear,
+Yet dazzle Heaven, that brightest Seraphim
+Approach not, but with both wings veil their eyes.
+Thee next they sang of all creation first,
+Begotten Son, Divine Similitude,
+In whose conspicuous countenance, without cloud
+Made visible, the Almighty Father shines,
+Whom else no creature can behold; on thee
+Impressed the effulgence of his glory abides,
+Transfused on thee his ample Spirit rests.
+He Heaven of Heavens and all the Powers therein
+By thee created; and by thee threw down
+The aspiring Dominations: Thou that day
+Thy Father's dreadful thunder didst not spare,
+Nor stop thy flaming chariot-wheels, that shook
+Heaven's everlasting frame, while o'er the necks
+Thou drovest of warring Angels disarrayed.
+Back from pursuit thy Powers with loud acclaim
+Thee only extolled, Son of thy Father's might,
+To execute fierce vengeance on his foes,
+Not so on Man: Him through their malice fallen,
+Father of mercy and grace, thou didst not doom
+So strictly, but much more to pity incline:
+No sooner did thy dear and only Son
+Perceive thee purposed not to doom frail Man
+So strictly, but much more to pity inclined,
+He to appease thy wrath, and end the strife
+Of mercy and justice in thy face discerned,
+Regardless of the bliss wherein he sat
+Second to thee, offered himself to die
+For Man's offence. O unexampled love,
+Love no where to be found less than Divine!
+Hail, Son of God, Saviour of Men! Thy name
+Shall be the copious matter of my song
+Henceforth, and never shall my heart thy praise
+Forget, nor from thy Father's praise disjoin.
+Thus they in Heaven, above the starry sphere,
+Their happy hours in joy and hymning spent.
+Mean while upon the firm opacous globe
+Of this round world, whose first convex divides
+The luminous inferiour orbs, enclosed
+From Chaos, and the inroad of Darkness old,
+Satan alighted walks: A globe far off
+It seemed, now seems a boundless continent
+Dark, waste, and wild, under the frown of Night
+Starless exposed, and ever-threatening storms
+Of Chaos blustering round, inclement sky;
+Save on that side which from the wall of Heaven,
+Though distant far, some small reflection gains
+Of glimmering air less vexed with tempest loud:
+Here walked the Fiend at large in spacious field.
+As when a vultur on Imaus bred,
+Whose snowy ridge the roving Tartar bounds,
+Dislodging from a region scarce of prey
+To gorge the flesh of lambs or yeanling kids,
+On hills where flocks are fed, flies toward the springs
+Of Ganges or Hydaspes, Indian streams;
+But in his way lights on the barren plains
+Of Sericana, where Chineses drive
+With sails and wind their cany waggons light:
+So, on this windy sea of land, the Fiend
+Walked up and down alone, bent on his prey;
+Alone, for other creature in this place,
+Living or lifeless, to be found was none;
+None yet, but store hereafter from the earth
+Up hither like aereal vapours flew
+Of all things transitory and vain, when sin
+With vanity had filled the works of men:
+Both all things vain, and all who in vain things
+Built their fond hopes of glory or lasting fame,
+Or happiness in this or the other life;
+All who have their reward on earth, the fruits
+Of painful superstition and blind zeal,
+Nought seeking but the praise of men, here find
+Fit retribution, empty as their deeds;
+All the unaccomplished works of Nature's hand,
+Abortive, monstrous, or unkindly mixed,
+Dissolved on earth, fleet hither, and in vain,
+Till final dissolution, wander here;
+Not in the neighbouring moon as some have dreamed;
+Those argent fields more likely habitants,
+Translated Saints, or middle Spirits hold
+Betwixt the angelical and human kind.
+Hither of ill-joined sons and daughters born
+First from the ancient world those giants came
+With many a vain exploit, though then renowned:
+The builders next of Babel on the plain
+Of Sennaar, and still with vain design,
+New Babels, had they wherewithal, would build:
+Others came single; he, who, to be deemed
+A God, leaped fondly into Aetna flames,
+Empedocles; and he, who, to enjoy
+Plato's Elysium, leaped into the sea,
+Cleombrotus; and many more too long,
+Embryos, and idiots, eremites, and friars
+White, black, and gray, with all their trumpery.
+Here pilgrims roam, that strayed so far to seek
+In Golgotha him dead, who lives in Heaven;
+And they, who to be sure of Paradise,
+Dying, put on the weeds of Dominick,
+Or in Franciscan think to pass disguised;
+They pass the planets seven, and pass the fixed,
+And that crystalling sphere whose balance weighs
+The trepidation talked, and that first moved;
+And now Saint Peter at Heaven's wicket seems
+To wait them with his keys, and now at foot
+Of Heaven's ascent they lift their feet, when lo
+A violent cross wind from either coast
+Blows them transverse, ten thousand leagues awry
+Into the devious air: Then might ye see
+Cowls, hoods, and habits, with their wearers, tost
+And fluttered into rags; then reliques, beads,
+Indulgences, dispenses, pardons, bulls,
+The sport of winds: All these, upwhirled aloft,
+Fly o'er the backside of the world far off
+Into a Limbo large and broad, since called
+The Paradise of Fools, to few unknown
+Long after; now unpeopled, and untrod.
+All this dark globe the Fiend found as he passed,
+And long he wandered, till at last a gleam
+Of dawning light turned thither-ward in haste
+His travelled steps: far distant he descries
+Ascending by degrees magnificent
+Up to the wall of Heaven a structure high;
+At top whereof, but far more rich, appeared
+The work as of a kingly palace-gate,
+With frontispiece of diamond and gold
+Embellished; thick with sparkling orient gems
+The portal shone, inimitable on earth
+By model, or by shading pencil, drawn.
+These stairs were such as whereon Jacob saw
+Angels ascending and descending, bands
+Of guardians bright, when he from Esau fled
+To Padan-Aram, in the field of Luz
+Dreaming by night under the open sky
+And waking cried, This is the gate of Heaven.
+Each stair mysteriously was meant, nor stood
+There always, but drawn up to Heaven sometimes
+Viewless; and underneath a bright sea flowed
+Of jasper, or of liquid pearl, whereon
+Who after came from earth, failing arrived
+Wafted by Angels, or flew o'er the lake
+Rapt in a chariot drawn by fiery steeds.
+The stairs were then let down, whether to dare
+The Fiend by easy ascent, or aggravate
+His sad exclusion from the doors of bliss:
+Direct against which opened from beneath,
+Just o'er the blissful seat of Paradise,
+A passage down to the Earth, a passage wide,
+Wider by far than that of after-times
+Over mount Sion, and, though that were large,
+Over the Promised Land to God so dear;
+By which, to visit oft those happy tribes,
+On high behests his angels to and fro
+Passed frequent, and his eye with choice regard
+From Paneas, the fount of Jordan's flood,
+To Beersaba, where the Holy Land
+Borders on Egypt and the Arabian shore;
+So wide the opening seemed, where bounds were set
+To darkness, such as bound the ocean wave.
+Satan from hence, now on the lower stair,
+That scaled by steps of gold to Heaven-gate,
+Looks down with wonder at the sudden view
+Of all this world at once. As when a scout,
+Through dark?;nd desart ways with?oeril gone
+All?might,?;t?kast by break of cheerful dawn
+Obtains the brow of some high-climbing hill,
+Which to his eye discovers unaware
+The goodly prospect of some foreign land
+First seen, or some renowned metropolis
+With glistering spires and pinnacles adorned,
+Which now the rising sun gilds with his beams:
+Such wonder seised, though after Heaven seen,
+The Spirit malign, but much more envy seised,
+At sight of all this world beheld so fair.
+Round he surveys (and well might, where he stood
+So high above the circling canopy
+Of night's extended shade,) from eastern point
+Of Libra to the fleecy star that bears
+Andromeda far off Atlantick seas
+Beyond the horizon; then from pole to pole
+He views in breadth, and without longer pause
+Down right into the world's first region throws
+His flight precipitant, and winds with ease
+Through the pure marble air his oblique way
+Amongst innumerable stars, that shone
+Stars distant, but nigh hand seemed other worlds;
+Or other worlds they seemed, or happy isles,
+Like those Hesperian gardens famed of old,
+Fortunate fields, and groves, and flowery vales,
+Thrice happy isles; but who dwelt happy there
+He staid not to inquire: Above them all
+The golden sun, in splendour likest Heaven,
+Allured his eye; thither his course he bends
+Through the calm firmament, (but up or down,
+By center, or eccentrick, hard to tell,
+Or longitude,) where the great luminary
+Aloof the vulgar constellations thick,
+That from his lordly eye keep distance due,
+Dispenses light from far; they, as they move
+Their starry dance in numbers that compute
+Days, months, and years, towards his all-cheering lamp
+Turn swift their various motions, or are turned
+By his magnetick beam, that gently warms
+The universe, and to each inward part
+With gentle penetration, though unseen,
+Shoots invisible virtue even to the deep;
+So wonderously was set his station bright.
+There lands the Fiend, a spot like which perhaps
+Astronomer in the sun's lucent orb
+Through his glazed optick tube yet never saw.
+The place he found beyond expression bright,
+Compared with aught on earth, metal or stone;
+Not all parts like, but all alike informed
+With radiant light, as glowing iron with fire;
+If metal, part seemed gold, part silver clear;
+If stone, carbuncle most or chrysolite,
+Ruby or topaz, to the twelve that shone
+In Aaron's breast-plate, and a stone besides
+Imagined rather oft than elsewhere seen,
+That stone, or like to that which here below
+Philosophers in vain so long have sought,
+In vain, though by their powerful art they bind
+Volatile Hermes, and call up unbound
+In various shapes old Proteus from the sea,
+Drained through a limbeck to his native form.
+What wonder then if fields and regions here
+Breathe forth Elixir pure, and rivers run
+Potable gold, when with one virtuous touch
+The arch-chemick sun, so far from us remote,
+Produces, with terrestrial humour mixed,
+Here in the dark so many precious things
+Of colour glorious, and effect so rare?
+Here matter new to gaze the Devil met
+Undazzled; far and wide his eye commands;
+For sight no obstacle found here, nor shade,
+But all sun-shine, as when his beams at noon
+Culminate from the equator, as they now
+Shot upward still direct, whence no way round
+Shadow from body opaque can fall; and the air,
+No where so clear, sharpened his visual ray
+To objects distant far, whereby he soon
+Saw within ken a glorious Angel stand,
+The same whom John saw also in the sun:
+His back was turned, but not his brightness hid;
+Of beaming sunny rays a golden tiar
+Circled his head, nor less his locks behind
+Illustrious on his shoulders fledge with wings
+Lay waving round; on some great charge employed
+He seemed, or fixed in cogitation deep.
+Glad was the Spirit impure, as now in hope
+To find who might direct his wandering flight
+To Paradise, the happy seat of Man,
+His journey's end and our beginning woe.
+But first he casts to change his proper shape,
+Which else might work him danger or delay:
+And now a stripling Cherub he appears,
+Not of the prime, yet such as in his face
+Youth smiled celestial, and to every limb
+Suitable grace diffused, so well he feigned:
+Under a coronet his flowing hair
+In curls on either cheek played; wings he wore
+Of many a coloured plume, sprinkled with gold;
+His habit fit for speed succinct, and held
+Before his decent steps a silver wand.
+He drew not nigh unheard; the Angel bright,
+Ere he drew nigh, his radiant visage turned,
+Admonished by his ear, and straight was known
+The Arch-Angel Uriel, one of the seven
+Who in God's presence, nearest to his throne,
+Stand ready at command, and are his eyes
+That run through all the Heavens, or down to the Earth
+Bear his swift errands over moist and dry,
+O'er sea and land: him Satan thus accosts.
+Uriel, for thou of those seven Spirits that stand
+In sight of God's high throne, gloriously bright,
+The first art wont his great authentick will
+Interpreter through highest Heaven to bring,
+Where all his sons thy embassy attend;
+And here art likeliest by supreme decree
+Like honour to obtain, and as his eye
+To visit oft this new creation round;
+Unspeakable desire to see, and know
+All these his wonderous works, but chiefly Man,
+His chief delight and favour, him for whom
+All these his works so wonderous he ordained,
+Hath brought me from the quires of Cherubim
+Alone thus wandering. Brightest Seraph, tell
+In which of all these shining orbs hath Man
+His fixed seat, or fixed seat hath none,
+But all these shining orbs his choice to dwell;
+That I may find him, and with secret gaze
+Or open admiration him behold,
+On whom the great Creator hath bestowed
+Worlds, and on whom hath all these graces poured;
+That both in him and all things, as is meet,
+The universal Maker we may praise;
+Who justly hath driven out his rebel foes
+To deepest Hell, and, to repair that loss,
+Created this new happy race of Men
+To serve him better: Wise are all his ways.
+So spake the false dissembler unperceived;
+For neither Man nor Angel can discern
+Hypocrisy, the only evil that walks
+Invisible, except to God alone,
+By his permissive will, through Heaven and Earth:
+And oft, though wisdom wake, suspicion sleeps
+At wisdom's gate, and to simplicity
+Resigns her charge, while goodness thinks no ill
+Where no ill seems: Which now for once beguiled
+Uriel, though regent of the sun, and held
+The sharpest-sighted Spirit of all in Heaven;
+Who to the fraudulent impostor foul,
+In his uprightness, answer thus returned.
+Fair Angel, thy desire, which tends to know
+The works of God, thereby to glorify
+The great Work-master, leads to no excess
+That reaches blame, but rather merits praise
+The more it seems excess, that led thee hither
+From thy empyreal mansion thus alone,
+To witness with thine eyes what some perhaps,
+Contented with report, hear only in Heaven:
+For wonderful indeed are all his works,
+Pleasant to know, and worthiest to be all
+Had in remembrance always with delight;
+But what created mind can comprehend
+Their number, or the wisdom infinite
+That brought them forth, but hid their causes deep?
+I saw when at his word the formless mass,
+This world's material mould, came to a heap:
+Confusion heard his voice, and wild uproar
+Stood ruled, stood vast infinitude confined;
+Till at his second bidding Darkness fled,
+Light shone, and order from disorder sprung:
+Swift to their several quarters hasted then
+The cumbrous elements, earth, flood, air, fire;
+And this ethereal quintessence of Heaven
+Flew upward, spirited with various forms,
+That rolled orbicular, and turned to stars
+Numberless, as thou seest, and how they move;
+Each had his place appointed, each his course;
+The rest in circuit walls this universe.
+Look downward on that globe, whose hither side
+With light from hence, though but reflected, shines;
+That place is Earth, the seat of Man; that light
+His day, which else, as the other hemisphere,
+Night would invade; but there the neighbouring moon
+So call that opposite fair star) her aid
+Timely interposes, and her monthly round
+Still ending, still renewing, through mid Heaven,
+With borrowed light her countenance triform
+Hence fills and empties to enlighten the Earth,
+And in her pale dominion checks the night.
+That spot, to which I point, is Paradise,
+Adam's abode; those lofty shades, his bower.
+Thy way thou canst not miss, me mine requires.
+Thus said, he turned; and Satan, bowing low,
+As to superiour Spirits is wont in Heaven,
+Where honour due and reverence none neglects,
+Took leave, and toward the coast of earth beneath,
+Down from the ecliptick, sped with hoped success,
+Throws his steep flight in many an aery wheel;
+Nor staid, till on Niphates' top he lights.
+
+
+
+Book IV
+
+
+O, for that warning voice, which he, who saw
+The Apocalypse, heard cry in Heaven aloud,
+Then when the Dragon, put to second rout,
+Came furious down to be revenged on men,
+Woe to the inhabitants on earth! that now,
+While time was, our first parents had been warned
+The coming of their secret foe, and 'scaped,
+Haply so 'scaped his mortal snare: For now
+Satan, now first inflamed with rage, came down,
+The tempter ere the accuser of mankind,
+To wreak on innocent frail Man his loss
+Of that first battle, and his flight to Hell:
+Yet, not rejoicing in his speed, though bold
+Far off and fearless, nor with cause to boast,
+Begins his dire attempt; which nigh the birth
+Now rolling boils in his tumultuous breast,
+And like a devilish engine back recoils
+Upon himself; horrour and doubt distract
+His troubled thoughts, and from the bottom stir
+The Hell within him; for within him Hell
+He brings, and round about him, nor from Hell
+One step, no more than from himself, can fly
+By change of place: Now conscience wakes despair,
+That slumbered; wakes the bitter memory
+Of what he was, what is, and what must be
+Worse; of worse deeds worse sufferings must ensue.
+Sometimes towards Eden, which now in his view
+Lay pleasant, his grieved look he fixes sad;
+Sometimes towards Heaven, and the full-blazing sun,
+Which now sat high in his meridian tower:
+Then, much revolving, thus in sighs began.
+O thou, that, with surpassing glory crowned,
+Lookest from thy sole dominion like the God
+Of this new world; at whose sight all the stars
+Hide their diminished heads; to thee I call,
+But with no friendly voice, and add thy name,
+Of Sun! to tell thee how I hate thy beams,
+That bring to my remembrance from what state
+I fell, how glorious once above thy sphere;
+Till pride and worse ambition threw me down
+Warring in Heaven against Heaven's matchless King:
+Ah, wherefore! he deserved no such return
+From me, whom he created what I was
+In that bright eminence, and with his good
+Upbraided none; nor was his service hard.
+What could be less than to afford him praise,
+The easiest recompence, and pay him thanks,
+How due! yet all his good proved ill in me,
+And wrought but malice; lifted up so high
+I sdeined subjection, and thought one step higher
+Would set me highest, and in a moment quit
+The debt immense of endless gratitude,
+So burdensome still paying, still to owe,
+Forgetful what from him I still received,
+And understood not that a grateful mind
+By owing owes not, but still pays, at once
+Indebted and discharged; what burden then
+O, had his powerful destiny ordained
+Me some inferiour Angel, I had stood
+Then happy; no unbounded hope had raised
+Ambition! Yet why not some other Power
+As great might have aspired, and me, though mean,
+Drawn to his part; but other Powers as great
+Fell not, but stand unshaken, from within
+Or from without, to all temptations armed.
+Hadst thou the same free will and power to stand?
+Thou hadst: whom hast thou then or what to accuse,
+But Heaven's free love dealt equally to all?
+Be then his love accursed, since love or hate,
+To me alike, it deals eternal woe.
+Nay, cursed be thou; since against his thy will
+Chose freely what it now so justly rues.
+Me miserable! which way shall I fly
+Infinite wrath, and infinite despair?
+Which way I fly is Hell; myself am Hell;
+And, in the lowest deep, a lower deep
+Still threatening to devour me opens wide,
+To which the Hell I suffer seems a Heaven.
+O, then, at last relent: Is there no place
+Left for repentance, none for pardon left?
+None left but by submission; and that word
+Disdain forbids me, and my dread of shame
+Among the Spirits beneath, whom I seduced
+With other promises and other vaunts
+Than to submit, boasting I could subdue
+The Omnipotent. Ay me! they little know
+How dearly I abide that boast so vain,
+Under what torments inwardly I groan,
+While they adore me on the throne of Hell.
+With diadem and scepter high advanced,
+The lower still I fall, only supreme
+In misery: Such joy ambition finds.
+But say I could repent, and could obtain,
+By act of grace, my former state; how soon
+Would highth recall high thoughts, how soon unsay
+What feigned submission swore? Ease would recant
+Vows made in pain, as violent and void.
+For never can true reconcilement grow,
+Where wounds of deadly hate have pierced so deep:
+Which would but lead me to a worse relapse
+And heavier fall: so should I purchase dear
+Short intermission bought with double smart.
+This knows my Punisher; therefore as far
+From granting he, as I from begging, peace;
+All hope excluded thus, behold, in stead
+Mankind created, and for him this world.
+So farewell, hope; and with hope farewell, fear;
+Farewell, remorse! all good to me is lost;
+Evil, be thou my good; by thee at least
+Divided empire with Heaven's King I hold,
+By thee, and more than half perhaps will reign;
+As Man ere long, and this new world, shall know.
+Thus while he spake, each passion dimmed his face
+Thrice changed with pale, ire, envy, and despair;
+Which marred his borrowed visage, and betrayed
+Him counterfeit, if any eye beheld.
+For heavenly minds from such distempers foul
+Are ever clear. Whereof he soon aware,
+Each perturbation smoothed with outward calm,
+Artificer of fraud; and was the first
+That practised falsehood under saintly show,
+Deep malice to conceal, couched with revenge:
+Yet not enough had practised to deceive
+Uriel once warned; whose eye pursued him down
+ The way he went, and on the Assyrian mount
+ Saw him disfigured, more than could befall
+ Spirit of happy sort; his gestures fierce
+ He marked and mad demeanour, then alone,
+ As he supposed, all unobserved, unseen.
+ So on he fares, and to the border comes
+ Of Eden, where delicious Paradise,
+ Now nearer, crowns with her enclosure green,
+ As with a rural mound, the champaign head
+ Of a steep wilderness, whose hairy sides
+Access denied; and overhead upgrew
+ Insuperable height of loftiest shade,
+ Cedar, and pine, and fir, and branching palm,
+ A sylvan scene, and, as the ranks ascend,
+ Shade above shade, a woody theatre
+ Of stateliest view. Yet higher than their tops
+ The verdurous wall of Paradise upsprung;
+
+ 00081429
+Which to our general sire gave prospect large
+Into his nether empire neighbouring round.
+And higher than that wall a circling row
+Of goodliest trees, loaden with fairest fruit,
+Blossoms and fruits at once of golden hue,
+Appeared, with gay enamelled colours mixed:
+On which the sun more glad impressed his beams
+Than in fair evening cloud, or humid bow,
+When God hath showered the earth; so lovely seemed
+That landskip: And of pure now purer air
+Meets his approach, and to the heart inspires
+Vernal delight and joy, able to drive
+All sadness but despair: Now gentle gales,
+Fanning their odoriferous wings, dispense
+Native perfumes, and whisper whence they stole
+Those balmy spoils. As when to them who fail
+Beyond the Cape of Hope, and now are past
+Mozambick, off at sea north-east winds blow
+Sabean odours from the spicy shore
+Of Araby the blest; with such delay
+Well pleased they slack their course, and many a league
+Cheered with the grateful smell old Ocean smiles:
+So entertained those odorous sweets the Fiend,
+Who came their bane; though with them better pleased
+Than Asmodeus with the fishy fume
+That drove him, though enamoured, from the spouse
+Of Tobit's son, and with a vengeance sent
+From Media post to Egypt, there fast bound.
+Now to the ascent of that steep savage hill
+Satan had journeyed on, pensive and slow;
+But further way found none, so thick entwined,
+As one continued brake, the undergrowth
+Of shrubs and tangling bushes had perplexed
+All path of man or beast that passed that way.
+One gate there only was, and that looked east
+On the other side: which when the arch-felon saw,
+Due entrance he disdained; and, in contempt,
+At one flight bound high over-leaped all bound
+Of hill or highest wall, and sheer within
+Lights on his feet. As when a prowling wolf,
+Whom hunger drives to seek new haunt for prey,
+Watching where shepherds pen their flocks at eve
+In hurdled cotes amid the field secure,
+Leaps o'er the fence with ease into the fold:
+Or as a thief, bent to unhoard the cash
+Of some rich burgher, whose substantial doors,
+Cross-barred and bolted fast, fear no assault,
+In at the window climbs, or o'er the tiles:
+So clomb this first grand thief into God's fold;
+So since into his church lewd hirelings climb.
+Thence up he flew, and on the tree of life,
+The middle tree and highest there that grew,
+Sat like a cormorant; yet not true life
+Thereby regained, but sat devising death
+To them who lived; nor on the virtue thought
+Of that life-giving plant, but only used
+For prospect, what well used had been the pledge
+Of immortality. So little knows
+Any, but God alone, to value right
+The good before him, but perverts best things
+To worst abuse, or to their meanest use.
+Beneath him with new wonder now he views,
+To all delight of human sense exposed,
+In narrow room, Nature's whole wealth, yea more,
+A Heaven on Earth: For blissful Paradise
+Of God the garden was, by him in the east
+Of Eden planted; Eden stretched her line
+From Auran eastward to the royal towers
+Of great Seleucia, built by Grecian kings,
+Of where the sons of Eden long before
+Dwelt in Telassar: In this pleasant soil
+His far more pleasant garden God ordained;
+Out of the fertile ground he caused to grow
+All trees of noblest kind for sight, smell, taste;
+And all amid them stood the tree of life,
+High eminent, blooming ambrosial fruit
+Of vegetable gold; and next to life,
+Our death, the tree of knowledge, grew fast by,
+Knowledge of good bought dear by knowing ill.
+Southward through Eden went a river large,
+Nor changed his course, but through the shaggy hill
+Passed underneath ingulfed; for God had thrown
+That mountain as his garden-mould high raised
+Upon the rapid current, which, through veins
+Of porous earth with kindly thirst up-drawn,
+Rose a fresh fountain, and with many a rill
+Watered the garden; thence united fell
+Down the steep glade, and met the nether flood,
+Which from his darksome passage now appears,
+And now, divided into four main streams,
+Runs diverse, wandering many a famous realm
+And country, whereof here needs no account;
+But rather to tell how, if Art could tell,
+How from that sapphire fount the crisped brooks,
+Rolling on orient pearl and sands of gold,
+With mazy errour under pendant shades
+Ran nectar, visiting each plant, and fed
+Flowers worthy of Paradise, which not nice Art
+In beds and curious knots, but Nature boon
+Poured forth profuse on hill, and dale, and plain,
+Both where the morning sun first warmly smote
+The open field, and where the unpierced shade
+Imbrowned the noontide bowers: Thus was this place
+A happy rural seat of various view;
+Groves whose rich trees wept odorous gums and balm,
+Others whose fruit, burnished with golden rind,
+Hung amiable, Hesperian fables true,
+If true, here only, and of delicious taste:
+Betwixt them lawns, or level downs, and flocks
+Grazing the tender herb, were interposed,
+Or palmy hillock; or the flowery lap
+Of some irriguous valley spread her store,
+Flowers of all hue, and without thorn the rose:
+Another side, umbrageous grots and caves
+Of cool recess, o'er which the mantling vine
+Lays forth her purple grape, and gently creeps
+Luxuriant; mean while murmuring waters fall
+Down the slope hills, dispersed, or in a lake,
+That to the fringed bank with myrtle crowned
+Her crystal mirrour holds, unite their streams.
+The birds their quire apply; airs, vernal airs,
+Breathing the smell of field and grove, attune
+The trembling leaves, while universal Pan,
+Knit with the Graces and the Hours in dance,
+Led on the eternal Spring. Not that fair field
+Of Enna, where Proserpine gathering flowers,
+Herself a fairer flower by gloomy Dis
+Was gathered, which cost Ceres all that pain
+To seek her through the world; nor that sweet grove
+Of Daphne by Orontes, and the inspired
+Castalian spring, might with this Paradise
+Of Eden strive; nor that Nyseian isle
+Girt with the river Triton, where old Cham,
+Whom Gentiles Ammon call and Libyan Jove,
+Hid Amalthea, and her florid son
+Young Bacchus, from his stepdame Rhea's eye;
+Nor where Abassin kings their issue guard,
+Mount Amara, though this by some supposed
+True Paradise under the Ethiop line
+By Nilus' head, enclosed with shining rock,
+A whole day's journey high, but wide remote
+From this Assyrian garden, where the Fiend
+Saw, undelighted, all delight, all kind
+Of living creatures, new to sight, and strange
+Two of far nobler shape, erect and tall,
+Godlike erect, with native honour clad
+In naked majesty seemed lords of all:
+And worthy seemed; for in their looks divine
+The image of their glorious Maker shone,
+Truth, wisdom, sanctitude severe and pure,
+(Severe, but in true filial freedom placed,)
+Whence true authority in men; though both
+Not equal, as their sex not equal seemed;
+For contemplation he and valour formed;
+For softness she and sweet attractive grace;
+He for God only, she for God in him:
+His fair large front and eye sublime declared
+Absolute rule; and hyacinthine locks
+Round from his parted forelock manly hung
+Clustering, but not beneath his shoulders broad:
+She, as a veil, down to the slender waist
+Her unadorned golden tresses wore
+Dishevelled, but in wanton ringlets waved
+As the vine curls her tendrils, which implied
+Subjection, but required with gentle sway,
+And by her yielded, by him best received,
+Yielded with coy submission, modest pride,
+And sweet, reluctant, amorous delay.
+Nor those mysterious parts were then concealed;
+Then was not guilty shame, dishonest shame
+Of nature's works, honour dishonourable,
+Sin-bred, how have ye troubled all mankind
+With shows instead, mere shows of seeming pure,
+And banished from man's life his happiest life,
+Simplicity and spotless innocence!
+So passed they naked on, nor shunned the sight
+Of God or Angel; for they thought no ill:
+So hand in hand they passed, the loveliest pair,
+That ever since in love's embraces met;
+Adam the goodliest man of men since born
+His sons, the fairest of her daughters Eve.
+Under a tuft of shade that on a green
+Stood whispering soft, by a fresh fountain side
+They sat them down; and, after no more toil
+Of their sweet gardening labour than sufficed
+To recommend cool Zephyr, and made ease
+More easy, wholesome thirst and appetite
+More grateful, to their supper-fruits they fell,
+Nectarine fruits which the compliant boughs
+Yielded them, side-long as they sat recline
+On the soft downy bank damasked with flowers:
+The savoury pulp they chew, and in the rind,
+Still as they thirsted, scoop the brimming stream;
+Nor gentle purpose, nor endearing smiles
+Wanted, nor youthful dalliance, as beseems
+Fair couple, linked in happy nuptial league,
+Alone as they. About them frisking played
+All beasts of the earth, since wild, and of all chase
+In wood or wilderness, forest or den;
+Sporting the lion ramped, and in his paw
+Dandled the kid; bears, tigers, ounces, pards,
+Gambolled before them; the unwieldy elephant,
+To make them mirth, used all his might, and wreathed
+His?kithetmroboscis; close the serpent sly,
+Insinuating, wove with Gordian twine
+His braided train, and of his fatal guile
+Gave proof unheeded; others on the grass
+Couched, and now filled with pasture gazing sat,
+Or bedward ruminating; for the sun,
+Declined, was hasting now with prone career
+To the ocean isles, and in the ascending scale
+Of Heaven the stars that usher evening rose:
+When Satan still in gaze, as first he stood,
+Scarce thus at length failed speech recovered sad.
+O Hell! what do mine eyes with grief behold!
+Into our room of bliss thus high advanced
+Creatures of other mould, earth-born perhaps,
+Not Spirits, yet to heavenly Spirits bright
+Little inferiour; whom my thoughts pursue
+With wonder, and could love, so lively shines
+In them divine resemblance, and such grace
+The hand that formed them on their shape hath poured.
+Ah! gentle pair, ye little think how nigh
+Your change approaches, when all these delights
+Will vanish, and deliver ye to woe;
+More woe, the more your taste is now of joy;
+Happy, but for so happy ill secured
+Long to continue, and this high seat your Heaven
+Ill fenced for Heaven to keep out such a foe
+As now is entered; yet no purposed foe
+To you, whom I could pity thus forlorn,
+Though I unpitied: League with you I seek,
+And mutual amity, so strait, so close,
+That I with you must dwell, or you with me
+Henceforth; my dwelling haply may not please,
+Like this fair Paradise, your sense; yet such
+Accept your Maker's work; he gave it me,
+Which I as freely give: Hell shall unfold,
+To entertain you two, her widest gates,
+And send forth all her kings; there will be room,
+Not like these narrow limits, to receive
+Your numerous offspring; if no better place,
+Thank him who puts me loth to this revenge
+On you who wrong me not for him who wronged.
+And should I at your harmless innocence
+Melt, as I do, yet publick reason just,
+Honour and empire with revenge enlarged,
+By conquering this new world, compels me now
+To do what else, though damned, I should abhor.
+So spake the Fiend, and with necessity,
+The tyrant's plea, excused his devilish deeds.
+Then from his lofty stand on that high tree
+Down he alights among the sportful herd
+Of those four-footed kinds, himself now one,
+Now other, as their shape served best his end
+Nearer to view his prey, and, unespied,
+To mark what of their state he more might learn,
+By word or action marked. About them round
+A lion now he stalks with fiery glare;
+Then as a tiger, who by chance hath spied
+In some purlieu two gentle fawns at play,
+Straight couches close, then, rising, changes oft
+His couchant watch, as one who chose his ground,
+Whence rushing, he might surest seize them both,
+Griped in each paw: when, Adam first of men
+To first of women Eve thus moving speech,
+Turned him, all ear to hear new utterance flow.
+Sole partner, and sole part, of all these joys,
+Dearer thyself than all; needs must the Power
+That made us, and for us this ample world,
+Be infinitely good, and of his good
+As liberal and free as infinite;
+That raised us from the dust, and placed us here
+In all this happiness, who at his hand
+Have nothing merited, nor can perform
+Aught whereof he hath need; he who requires
+From us no other service than to keep
+This one, this easy charge, of all the trees
+In Paradise that bear delicious fruit
+So various, not to taste that only tree
+Of knowledge, planted by the tree of life;
+So near grows death to life, whate'er death is,
+Some dreadful thing no doubt; for well thou knowest
+God hath pronounced it death to taste that tree,
+The only sign of our obedience left,
+Among so many signs of power and rule
+Conferred upon us, and dominion given
+Over all other creatures that possess
+Earth, air, and sea. Then let us not think hard
+One easy prohibition, who enjoy
+Free leave so large to all things else, and choice
+Unlimited of manifold delights:
+But let us ever praise him, and extol
+His bounty, following our delightful task,
+To prune these growing plants, and tend these flowers,
+Which were it toilsome, yet with thee were sweet.
+To whom thus Eve replied. O thou for whom
+And from whom I was formed, flesh of thy flesh,
+And without whom am to no end, my guide
+And head! what thou hast said is just and right.
+For we to him indeed all praises owe,
+And daily thanks; I chiefly, who enjoy
+So far the happier lot, enjoying thee
+Pre-eminent by so much odds, while thou
+Like consort to thyself canst no where find.
+That day I oft remember, when from sleep
+I first awaked, and found myself reposed
+Under a shade on flowers, much wondering where
+And what I was, whence thither brought, and how.
+Not distant far from thence a murmuring sound
+Of waters issued from a cave, and spread
+Into a liquid plain, then stood unmoved
+Pure as the expanse of Heaven; I thither went
+With unexperienced thought, and laid me down
+On the green bank, to look into the clear
+Smooth lake, that to me seemed another sky.
+As I bent down to look, just opposite
+A shape within the watery gleam appeared,
+Bending to look on me: I started back,
+It started back; but pleased I soon returned,
+Pleased it returned as soon with answering looks
+Of sympathy and love: There I had fixed
+Mine eyes till now, and pined with vain desire,
+Had not a voice thus warned me; 'What thou seest,
+'What there thou seest, fair Creature, is thyself;
+'With thee it came and goes: but follow me,
+'And I will bring thee where no shadow stays
+'Thy coming, and thy soft embraces, he
+'Whose image thou art; him thou shalt enjoy
+'Inseparably thine, to him shalt bear
+'Multitudes like thyself, and thence be called
+'Mother of human race.' What could I do,
+But follow straight, invisibly thus led?
+Till I espied thee, fair indeed and tall,
+Under a platane; yet methought less fair,
+Less winning soft, less amiably mild,
+Than that smooth watery image: Back I turned;
+Thou following cryedst aloud, 'Return, fair Eve;
+'Whom flyest thou? whom thou flyest, of him thou art,
+'His flesh, his bone; to give thee being I lent
+'Out of my side to thee, nearest my heart,
+'Substantial life, to have thee by my side
+'Henceforth an individual solace dear;
+'Part of my soul I seek thee, and thee claim
+'My other half:' With that thy gentle hand
+Seised mine: I yielded;and from that time see
+How beauty is excelled by manly grace,
+And wisdom, which alone is truly fair.
+So spake our general mother, and with eyes
+Of conjugal attraction unreproved,
+And meek surrender, half-embracing leaned
+On our first father; half her swelling breast
+Naked met his, under the flowing gold
+Of her loose tresses hid: he in delight
+Both of her beauty, and submissive charms,
+Smiled with superiour love, as Jupiter
+On Juno smiles, when he impregns the clouds
+That shed Mayflowers; and pressed her matron lip
+With kisses pure: Aside the Devil turned
+For envy; yet with jealous leer malign
+Eyed them askance, and to himself thus plained.
+Sight hateful, sight tormenting! thus these two,
+Imparadised in one another's arms,
+The happier Eden, shall enjoy their fill
+Of bliss on bliss; while I to Hell am thrust,
+Where neither joy nor love, but fierce desire,
+Among our other torments not the least,
+Still unfulfilled with pain of longing pines.
+Yet let me not forget what I have gained
+From their own mouths: All is not theirs, it seems;
+One fatal tree there stands, of knowledge called,
+Forbidden them to taste: Knowledge forbidden
+Suspicious, reasonless. Why should their Lord
+Envy them that? Can it be sin to know?
+Can it be death? And do they only stand
+By ignorance? Is that their happy state,
+The proof of their obedience and their faith?
+O fair foundation laid whereon to build
+Their ruin! hence I will excite their minds
+With more desire to know, and to reject
+Envious commands, invented with design
+To keep them low, whom knowledge might exalt
+Equal with Gods: aspiring to be such,
+They taste and die: What likelier can ensue
+But first with narrow search I must walk round
+This garden, and no corner leave unspied;
+A chance but chance may lead where I may meet
+Some wandering Spirit of Heaven by fountain side,
+Or in thick shade retired, from him to draw
+What further would be learned. Live while ye may,
+Yet happy pair; enjoy, till I return,
+Short pleasures, for long woes are to succeed!
+So saying, his proud step he scornful turned,
+But with sly circumspection, and began
+Through wood, through waste, o'er hill, o'er dale, his roam
+Mean while in utmost longitude, where Heaven
+With earth and ocean meets, the setting sun
+Slowly descended, and with right aspect
+Against the eastern gate of Paradise
+Levelled his evening rays: It was a rock
+Of alabaster, piled up to the clouds,
+Conspicuous far, winding with one ascent
+Accessible from earth, one entrance high;
+The rest was craggy cliff, that overhung
+Still as it rose, impossible to climb.
+Betwixt these rocky pillars Gabriel sat,
+Chief of the angelick guards, awaiting night;
+About him exercised heroick games
+The unarmed youth of Heaven, but nigh at hand
+Celestial armoury, shields, helms, and spears,
+Hung high with diamond flaming, and with gold.
+Thither came Uriel, gliding through the even
+On a sun-beam, swift as a shooting star
+In autumn thwarts the night, when vapours fired
+Impress the air, and shows the mariner
+From what point of his compass to beware
+Impetuous winds: He thus began in haste.
+Gabriel, to thee thy course by lot hath given
+Charge and strict watch, that to this happy place
+No evil thing approach or enter in.
+This day at highth of noon came to my sphere
+A Spirit, zealous, as he seemed, to know
+More of the Almighty's works, and chiefly Man,
+God's latest image: I described his way
+Bent all on speed, and marked his aery gait;
+But in the mount that lies from Eden north,
+Where he first lighted, soon discerned his looks
+Alien from Heaven, with passions foul obscured:
+Mine eye pursued him still, but under shade
+Lost sight of him: One of the banished crew,
+I fear, hath ventured from the deep, to raise
+New troubles; him thy care must be to find.
+To whom the winged warriour thus returned.
+Uriel, no wonder if thy perfect sight,
+Amid the sun's bright circle where thou sitst,
+See far and wide: In at this gate none pass
+The vigilance here placed, but such as come
+Well known from Heaven; and since meridian hour
+No creature thence: If Spirit of other sort,
+So minded, have o'er-leaped these earthly bounds
+On purpose, hard thou knowest it to exclude
+Spiritual substance with corporeal bar.
+But if within the circuit of these walks,
+In whatsoever shape he lurk, of whom
+Thou tellest, by morrow dawning I shall know.
+So promised he; and Uriel to his charge
+Returned on that bright beam, whose point now raised
+Bore him slope downward to the sun now fallen
+Beneath the Azores; whether the prime orb,
+Incredible how swift, had thither rolled
+Diurnal, or this less volubil earth,
+By shorter flight to the east, had left him there
+Arraying with reflected purple and gold
+The clouds that on his western throne attend.
+Now came still Evening on, and Twilight gray
+Had in her sober livery all things clad;
+Silence accompanied; for beast and bird,
+They to their grassy couch, these to their nests
+Were slunk, all but the wakeful nightingale;
+She all night long her amorous descant sung;
+Silence was pleased: Now glowed the firmament
+With living sapphires: Hesperus, that led
+The starry host, rode brightest, till the moon,
+Rising in clouded majesty, at length
+Apparent queen unveiled her peerless light,
+And o'er the dark her silver mantle threw.
+When Adam thus to Eve. Fair Consort, the hour
+Of night, and all things now retired to rest,
+Mind us of like repose; since God hath set
+Labour and rest, as day and night, to men
+Successive; and the timely dew of sleep,
+Now falling with soft slumbrous weight, inclines
+Our eye-lids: Other creatures all day long
+Rove idle, unemployed, and less need rest;
+Man hath his daily work of body or mind
+Appointed, which declares his dignity,
+And the regard of Heaven on all his ways;
+While other animals unactive range,
+And of their doings God takes no account.
+To-morrow, ere fresh morning streak the east
+With first approach of light, we must be risen,
+And at our pleasant labour, to reform
+Yon flowery arbours, yonder alleys green,
+Our walk at noon, with branches overgrown,
+That mock our scant manuring, and require
+More hands than ours to lop their wanton growth:
+Those blossoms also, and those dropping gums,
+That lie bestrown, unsightly and unsmooth,
+Ask riddance, if we mean to tread with ease;
+Mean while, as Nature wills, night bids us rest.
+To whom thus Eve, with perfect beauty adorned
+My Author and Disposer, what thou bidst
+Unargued I obey: So God ordains;
+God is thy law, thou mine: To know no more
+Is woman's happiest knowledge, and her praise.
+With thee conversing I forget all time;
+All seasons, and their change, all please alike.
+Sweet is the breath of Morn, her rising sweet,
+With charm of earliest birds: pleasant the sun,
+When first on this delightful land he spreads
+His orient beams, on herb, tree, fruit, and flower,
+Glistering with dew; fragrant the fertile earth
+After soft showers; and sweet the coming on
+Of grateful Evening mild; then silent Night,
+With this her solemn bird, and this fair moon,
+And these the gems of Heaven, her starry train:
+But neither breath of Morn, when she ascends
+With charm of earliest birds; nor rising sun
+On this delightful land; nor herb, fruit, flower,
+Glistering with dew; nor fragrance after showers;
+Nor grateful Evening mild; nor silent Night,
+With this her solemn bird, nor walk by moon,
+Or glittering star-light, without thee is sweet.
+But wherefore all night long shine these? for whom
+This glorious sight, when sleep hath shut all eyes?
+To whom our general ancestor replied.
+Daughter of God and Man, accomplished Eve,
+These have their course to finish round the earth,
+By morrow evening, and from land to land
+In order, though to nations yet unborn,
+Ministring light prepared, they set and rise;
+Lest total Darkness should by night regain
+Her old possession, and extinguish life
+In Nature and all things; which these soft fires
+Not only enlighten, but with kindly heat
+Of various influence foment and warm,
+Temper or nourish, or in part shed down
+Their stellar virtue on all kinds that grow
+On earth, made hereby apter to receive
+Perfection from the sun's more potent ray.
+These then, though unbeheld in deep of night,
+Shine not in vain; nor think, though men were none,
+That Heaven would want spectators, God want praise:
+Millions of spiritual creatures walk the earth
+Unseen, both when we wake, and when we sleep:
+All these with ceaseless praise his works behold
+Both day and night: How often from the steep
+Of echoing hill or thicket have we heard
+Celestial voices to the midnight air,
+Sole, or responsive each to others note,
+Singing their great Creator? oft in bands
+While they keep watch, or nightly rounding walk,
+With heavenly touch of instrumental sounds
+In full harmonick number joined, their songs
+Divide the night, and lift our thoughts to Heaven.
+Thus talking, hand in hand alone they passed
+On to their blissful bower: it was a place
+Chosen by the sovran Planter, when he framed
+All things to Man's delightful use; the roof
+Of thickest covert was inwoven shade
+Laurel and myrtle, and what higher grew
+Of firm and fragrant leaf; on either side
+Acanthus, and each odorous bushy shrub,
+Fenced up the verdant wall; each beauteous flower,
+Iris all hues, roses, and jessamin,
+Reared high their flourished heads between, and wrought
+Mosaick; underfoot the violet,
+Crocus, and hyacinth, with rich inlay
+Broidered the ground, more coloured than with stone
+Of costliest emblem: Other creature here,
+Bird, beast, insect, or worm, durst enter none,
+Such was their awe of Man. In shadier bower
+More sacred and sequestered, though but feigned,
+Pan or Sylvanus never slept, nor Nymph
+Nor Faunus haunted. Here, in close recess,
+With flowers, garlands, and sweet-smelling herbs,
+Espoused Eve decked first her nuptial bed;
+And heavenly quires the hymenaean sung,
+What day the genial Angel to our sire
+Brought her in naked beauty more adorned,
+More lovely, than Pandora, whom the Gods
+Endowed with all their gifts, and O! too like
+In sad event, when to the unwiser son
+Of Japhet brought by Hermes, she ensnared
+Mankind with her fair looks, to be avenged
+On him who had stole Jove's authentick fire.
+Thus, at their shady lodge arrived, both stood,
+Both turned, and under open sky adored
+The God that made both sky, air, earth, and heaven,
+Which they beheld, the moon's resplendent globe,
+And starry pole: Thou also madest the night,
+Maker Omnipotent, and thou the day,
+Which we, in our appointed work employed,
+Have finished, happy in our mutual help
+And mutual love, the crown of all our bliss
+Ordained by thee; and this delicious place
+For us too large, where thy abundance wants
+Partakers, and uncropt falls to the ground.
+But thou hast promised from us two a race
+To fill the earth, who shall with us extol
+Thy goodness infinite, both when we wake,
+And when we seek, as now, thy gift of sleep.
+This said unanimous, and other rites
+Observing none, but adoration pure
+Which God likes best, into their inmost bower
+Handed they went; and, eased the putting off
+These troublesome disguises which we wear,
+Straight side by side were laid; nor turned, I ween,
+Adam from his fair spouse, nor Eve the rites
+Mysterious of connubial love refused:
+Whatever hypocrites austerely talk
+Of purity, and place, and innocence,
+Defaming as impure what God declares
+Pure, and commands to some, leaves free to all.
+Our Maker bids encrease; who bids abstain
+But our Destroyer, foe to God and Man?
+Hail, wedded Love, mysterious law, true source
+Of human offspring, sole propriety
+In Paradise of all things common else!
+By thee adulterous Lust was driven from men
+Among the bestial herds to range; by thee
+Founded in reason, loyal, just, and pure,
+Relations dear, and all the charities
+Of father, son, and brother, first were known.
+Far be it, that I should write thee sin or blame,
+Or think thee unbefitting holiest place,
+Perpetual fountain of domestick sweets,
+Whose bed is undefiled and chaste pronounced,
+Present, or past, as saints and patriarchs used.
+Here Love his golden shafts employs, here lights
+His constant lamp, and waves his purple wings,
+Reigns here and revels; not in the bought smile
+Of harlots, loveless, joyless, unendeared,
+Casual fruition; nor in court-amours,
+Mixed dance, or wanton mask, or midnight ball,
+Or serenate, which the starved lover sings
+To his proud fair, best quitted with disdain.
+These, lulled by nightingales, embracing slept,
+And on their naked limbs the flowery roof
+Showered roses, which the morn repaired. Sleep on,
+Blest pair; and O!yet happiest, if ye seek
+No happier state, and know to know no more.
+Now had night measured with her shadowy cone
+Half way up hill this vast sublunar vault,
+And from their ivory port the Cherubim,
+Forth issuing at the accustomed hour, stood armed
+To their night watches in warlike parade;
+When Gabriel to his next in power thus spake.
+Uzziel, half these draw off, and coast the south
+With strictest watch; these other wheel the north;
+Our circuit meets full west. As flame they part,
+Half wheeling to the shield, half to the spear.
+From these, two strong and subtle Spirits he called
+That near him stood, and gave them thus in charge.
+Ithuriel and Zephon, with winged speed
+Search through this garden, leave unsearched no nook;
+But chiefly where those two fair creatures lodge,
+Now laid perhaps asleep, secure of harm.
+This evening from the sun's decline arrived,
+Who tells of some infernal Spirit seen
+Hitherward bent (who could have thought?) escaped
+The bars of Hell, on errand bad no doubt:
+Such, where ye find, seise fast, and hither bring.
+So saying, on he led his radiant files,
+Dazzling the moon; these to the bower direct
+In search of whom they sought: Him there they found
+Squat like a toad, close at the ear of Eve,
+Assaying by his devilish art to reach
+The organs of her fancy, and with them forge
+Illusions, as he list, phantasms and dreams;
+Or if, inspiring venom, he might taint
+The animal spirits, that from pure blood arise
+Like gentle breaths from rivers pure, thence raise
+At least distempered, discontented thoughts,
+Vain hopes, vain aims, inordinate desires,
+Blown up with high conceits ingendering pride.
+Him thus intent Ithuriel with his spear
+Touched lightly; for no falshood can endure
+Touch of celestial temper, but returns
+Of force to its own likeness: Up he starts
+Discovered and surprised. As when a spark
+Lights on a heap of nitrous powder, laid
+Fit for the tun some magazine to store
+Against a rumoured war, the smutty grain,
+With sudden blaze diffused, inflames the air;
+So started up in his own shape the Fiend.
+Back stept those two fair Angels, half amazed
+So sudden to behold the grisly king;
+Yet thus, unmoved with fear, accost him soon.
+Which of those rebel Spirits adjudged to Hell
+Comest thou, escaped thy prison? and, transformed,
+Why sat'st thou like an enemy in wait,
+Here watching at the head of these that sleep?
+Know ye not then said Satan, filled with scorn,
+Know ye not me? ye knew me once no mate
+For you, there sitting where ye durst not soar:
+Not to know me argues yourselves unknown,
+The lowest of your throng; or, if ye know,
+Why ask ye, and superfluous begin
+Your message, like to end as much in vain?
+To whom thus Zephon, answering scorn with scorn.
+Think not, revolted Spirit, thy shape the same,
+Or undiminished brightness to be known,
+As when thou stoodest in Heaven upright and pure;
+That glory then, when thou no more wast good,
+Departed from thee; and thou resemblest now
+Thy sin and place of doom obscure and foul.
+But come, for thou, be sure, shalt give account
+To him who sent us, whose charge is to keep
+This place inviolable, and these from harm.
+So spake the Cherub; and his grave rebuke,
+Severe in youthful beauty, added grace
+Invincible: Abashed the Devil stood,
+And felt how awful goodness is, and saw
+Virtue in her shape how lovely; saw, and pined
+His loss; but chiefly to find here observed
+His lustre visibly impaired; yet seemed
+Undaunted. If I must contend, said he,
+Best with the best, the sender, not the sent,
+Or all at once; more glory will be won,
+Or less be lost. Thy fear, said Zephon bold,
+Will save us trial what the least can do
+Single against thee wicked, and thence weak.
+The Fiend replied not, overcome with rage;
+But, like a proud steed reined, went haughty on,
+Champing his iron curb: To strive or fly
+He held it vain; awe from above had quelled
+His heart, not else dismayed. Now drew they nigh
+The western point, where those half-rounding guards
+Just met, and closing stood in squadron joined,
+A waiting next command. To whom their Chief,
+Gabriel, from the front thus called aloud.
+O friends! I hear the tread of nimble feet
+Hasting this way, and now by glimpse discern
+Ithuriel and Zephon through the shade;
+And with them comes a third of regal port,
+But faded splendour wan; who by his gait
+And fierce demeanour seems the Prince of Hell,
+Not likely to part hence without contest;
+Stand firm, for in his look defiance lours.
+He scarce had ended, when those two approached,
+And brief related whom they brought, where found,
+How busied, in what form and posture couched.
+To whom with stern regard thus Gabriel spake.
+Why hast thou, Satan, broke the bounds prescribed
+To thy transgressions, and disturbed the charge
+Of others, who approve not to transgress
+By thy example, but have power and right
+To question thy bold entrance on this place;
+Employed, it seems, to violate sleep, and those
+Whose dwelling God hath planted here in bliss!
+To whom thus Satan with contemptuous brow.
+Gabriel? thou hadst in Heaven the esteem of wise,
+And such I held thee; but this question asked
+Puts me in doubt. Lives there who loves his pain!
+Who would not, finding way, break loose from Hell,
+Though thither doomed! Thou wouldst thyself, no doubt
+And boldly venture to whatever place
+Farthest from pain, where thou mightst hope to change
+Torment with ease, and soonest recompense
+Dole with delight, which in this place I sought;
+To thee no reason, who knowest only good,
+But evil hast not tried: and wilt object
+His will who bounds us! Let him surer bar
+His iron gates, if he intends our stay
+In that dark durance: Thus much what was asked.
+The rest is true, they found me where they say;
+But that implies not violence or harm.
+Thus he in scorn. The warlike Angel moved,
+Disdainfully half smiling, thus replied.
+O loss of one in Heaven to judge of wise
+Since Satan fell, whom folly overthrew,
+And now returns him from his prison 'scaped,
+Gravely in doubt whether to hold them wise
+Or not, who ask what boldness brought him hither
+Unlicensed from his bounds in Hell prescribed;
+So wise he judges it to fly from pain
+However, and to 'scape his punishment!
+So judge thou still, presumptuous! till the wrath,
+Which thou incurrest by flying, meet thy flight
+Sevenfold, and scourge that wisdom back to Hell,
+Which taught thee yet no better, that no pain
+Can equal anger infinite provoked.
+But wherefore thou alone? wherefore with thee
+Came not all hell broke loose? or thou than they
+Less hardy to endure? Courageous Chief!
+The first in flight from pain! hadst thou alleged
+To thy deserted host this cause of flight,
+Thou surely hadst not come sole fugitive.
+To which the Fiend thus answered, frowning stern.
+Not that I less endure, or shrink from pain,
+Insulting Angel! well thou knowest I stood
+Thy fiercest, when in battle to thy aid
+The blasting vollied thunder made all speed,
+And seconded thy else not dreaded spear.
+But still thy words at random, as before,
+Argue thy inexperience what behoves
+From hard assays and ill successes past
+A faithful leader, not to hazard all
+Through ways of danger by himself untried:
+I, therefore, I alone first undertook
+To wing the desolate abyss, and spy
+This new created world, whereof in Hell
+Fame is not silent, here in hope to find
+Better abode, and my afflicted Powers
+To settle here on earth, or in mid air;
+Though for possession put to try once more
+What thou and thy gay legions dare against;
+Whose easier business were to serve their Lord
+High up in Heaven, with songs to hymn his throne,
+And practised distances to cringe, not fight,
+To whom the warriour Angel soon replied.
+To say and straight unsay, pretending first
+Wise to fly pain, professing next the spy,
+Argues no leader but a liear traced,
+Satan, and couldst thou faithful add? O name,
+O sacred name of faithfulness profaned!
+Faithful to whom? to thy rebellious crew?
+Army of Fiends, fit body to fit head.
+Was this your discipline and faith engaged,
+Your military obedience, to dissolve
+Allegiance to the acknowledged Power supreme?
+And thou, sly hypocrite, who now wouldst seem
+Patron of liberty, who more than thou
+Once fawned, and cringed, and servily adored
+Heaven's awful Monarch? wherefore, but in hope
+To dispossess him, and thyself to reign?
+But mark what I arreed thee now, Avant;
+Fly neither whence thou fledst! If from this hour
+Within these hallowed limits thou appear,
+Back to the infernal pit I drag thee chained,
+And seal thee so, as henceforth not to scorn
+The facile gates of Hell too slightly barred.
+So threatened he; but Satan to no threats
+Gave heed, but waxing more in rage replied.
+Then when I am thy captive talk of chains,
+Proud limitary Cherub! but ere then
+Far heavier load thyself expect to feel
+From my prevailing arm, though Heaven's King
+Ride on thy wings, and thou with thy compeers,
+Us'd to the yoke, drawest his triumphant wheels
+In progress through the road of Heaven star-paved.
+While thus he spake, the angelick squadron bright
+Turned fiery red, sharpening in mooned horns
+Their phalanx, and began to hem him round
+With ported spears, as thick as when a field
+Of Ceres ripe for harvest waving bends
+Her bearded grove of ears, which way the wind
+Sways them; the careful plowman doubting stands,
+Left on the threshing floor his hopeless sheaves
+Prove chaff. On the other side, Satan, alarmed,
+Collecting all his might, dilated stood,
+Like Teneriff or Atlas, unremoved:
+His stature reached the sky, and on his crest
+Sat Horrour plumed; nor wanted in his grasp
+What seemed both spear and shield: Now dreadful deeds
+Might have ensued, nor only Paradise
+In this commotion, but the starry cope
+Of Heaven perhaps, or all the elements
+At least had gone to wrack, disturbed and torn
+With violence of this conflict, had not soon
+The Eternal, to prevent such horrid fray,
+Hung forth in Heaven his golden scales, yet seen
+Betwixt Astrea and the Scorpion sign,
+Wherein all things created first he weighed,
+The pendulous round earth with balanced air
+In counterpoise, now ponders all events,
+Battles and realms: In these he put two weights,
+The sequel each of parting and of fight:
+The latter quick up flew, and kicked the beam,
+Which Gabriel spying, thus bespake the Fiend.
+Satan, I know thy strength, and thou knowest mine;
+Neither our own, but given: What folly then
+To boast what arms can do? since thine no more
+Than Heaven permits, nor mine, though doubled now
+To trample thee as mire: For proof look up,
+And read thy lot in yon celestial sign;
+Where thou art weighed, and shown how light, how weak,
+If thou resist. The Fiend looked up, and knew
+His mounted scale aloft: Nor more;but fled
+Murmuring, and with him fled the shades of night.
+
+
+
+Book V
+
+
+Now Morn, her rosy steps in the eastern clime
+Advancing, sowed the earth with orient pearl,
+When Adam waked, so customed; for his sleep
+Was aery-light, from pure digestion bred,
+And temperate vapours bland, which the only sound
+Of leaves and fuming rills, Aurora's fan,
+Lightly dispersed, and the shrill matin song
+Of birds on every bough; so much the more
+His wonder was to find unwakened Eve
+With tresses discomposed, and glowing cheek,
+As through unquiet rest: He, on his side
+Leaning half raised, with looks of cordial love
+Hung over her enamoured, and beheld
+Beauty, which, whether waking or asleep,
+Shot forth peculiar graces; then with voice
+Mild, as when Zephyrus on Flora breathes,
+Her hand soft touching, whispered thus. Awake,
+My fairest, my espoused, my latest found,
+Heaven's last best gift, my ever new delight!
+Awake: The morning shines, and the fresh field
+Calls us; we lose the prime, to mark how spring
+Our tender plants, how blows the citron grove,
+What drops the myrrh, and what the balmy reed,
+How nature paints her colours, how the bee
+Sits on the bloom extracting liquid sweet.
+Such whispering waked her, but with startled eye
+On Adam, whom embracing, thus she spake.
+O sole in whom my thoughts find all repose,
+My glory, my perfection! glad I see
+Thy face, and morn returned; for I this night
+(Such night till this I never passed) have dreamed,
+If dreamed, not, as I oft am wont, of thee,
+Works of day past, or morrow's next design,
+But of offence and trouble, which my mind
+Knew never till this irksome night: Methought,
+Close at mine ear one called me forth to walk
+With gentle voice; I thought it thine: It said,
+'Why sleepest thou, Eve? now is the pleasant time,
+'The cool, the silent, save where silence yields
+'To the night-warbling bird, that now awake
+'Tunes sweetest his love-laboured song; now reigns
+'Full-orbed the moon, and with more pleasing light
+'Shadowy sets off the face of things; in vain,
+'If none regard; Heaven wakes with all his eyes,
+'Whom to behold but thee, Nature's desire?
+'In whose sight all things joy, with ravishment
+'Attracted by thy beauty still to gaze.'
+I rose as at thy call, but found thee not;
+To find thee I directed then my walk;
+And on, methought, alone I passed through ways
+That brought me on a sudden to the tree
+Of interdicted knowledge: fair it seemed,
+Much fairer to my fancy than by day:
+And, as I wondering looked, beside it stood
+One shaped and winged like one of those from Heaven
+By us oft seen; his dewy locks distilled
+Ambrosia; on that tree he also gazed;
+And 'O fair plant,' said he, 'with fruit surcharged,
+'Deigns none to ease thy load, and taste thy sweet,
+'Nor God, nor Man? Is knowledge so despised?
+'Or envy, or what reserve forbids to taste?
+'Forbid who will, none shall from me withhold
+'Longer thy offered good; why else set here?
+This said, he paused not, but with venturous arm
+He plucked, he tasted; me damp horrour chilled
+At such bold words vouched with a deed so bold:
+But he thus, overjoyed; 'O fruit divine,
+'Sweet of thyself, but much more sweet thus cropt,
+'Forbidden here, it seems, as only fit
+'For Gods, yet able to make Gods of Men:
+'And why not Gods of Men; since good, the more
+'Communicated, more abundant grows,
+'The author not impaired, but honoured more?
+'Here, happy creature, fair angelick Eve!
+'Partake thou also; happy though thou art,
+'Happier thou mayest be, worthier canst not be:
+'Taste this, and be henceforth among the Gods
+'Thyself a Goddess, not to earth confined,
+'But sometimes in the air, as we, sometimes
+'Ascend to Heaven, by merit thine, and see
+'What life the Gods live there, and such live thou!'
+So saying, he drew nigh, and to me held,
+Even to my mouth of that same fruit held part
+Which he had plucked; the pleasant savoury smell
+So quickened appetite, that I, methought,
+Could not but taste. Forthwith up to the clouds
+With him I flew, and underneath beheld
+The earth outstretched immense, a prospect wide
+And various: Wondering at my flight and change
+To this high exaltation; suddenly
+My guide was gone, and I, methought, sunk down,
+And fell asleep; but O, how glad I waked
+To find this but a dream! Thus Eve her night
+Related, and thus Adam answered sad.
+Best image of myself, and dearer half,
+The trouble of thy thoughts this night in sleep
+Affects me equally; nor can I like
+This uncouth dream, of evil sprung, I fear;
+Yet evil whence? in thee can harbour none,
+Created pure. But know that in the soul
+Are many lesser faculties, that serve
+Reason as chief; among these Fancy next
+Her office holds; of all external things
+Which the five watchful senses represent,
+She forms imaginations, aery shapes,
+Which Reason, joining or disjoining, frames
+All what we affirm or what deny, and call
+Our knowledge or opinion; then retires
+Into her private cell, when nature rests.
+Oft in her absence mimick Fancy wakes
+To imitate her; but, misjoining shapes,
+Wild work produces oft, and most in dreams;
+Ill matching words and deeds long past or late.
+Some such resemblances, methinks, I find
+Of our last evening's talk, in this thy dream,
+But with addition strange; yet be not sad.
+Evil into the mind of God or Man
+May come and go, so unreproved, and leave
+No spot or blame behind: Which gives me hope
+That what in sleep thou didst abhor to dream,
+Waking thou never will consent to do.
+Be not disheartened then, nor cloud those looks,
+That wont to be more cheerful and serene,
+Than when fair morning first smiles on the world;
+And let us to our fresh employments rise
+Among the groves, the fountains, and the flowers
+That open now their choisest bosomed smells,
+Reserved from night, and kept for thee in store.
+So cheered he his fair spouse, and she was cheered;
+But silently a gentle tear let fall
+From either eye, and wiped them with her hair;
+Two other precious drops that ready stood,
+Each in their crystal sluice, he ere they fell
+Kissed, as the gracious signs of sweet remorse
+And pious awe, that feared to have offended.
+So all was cleared, and to the field they haste.
+But first, from under shady arborous roof
+Soon as they forth were come to open sight
+Of day-spring, and the sun, who, scarce up-risen,
+With wheels yet hovering o'er the ocean-brim,
+Shot parallel to the earth his dewy ray,
+Discovering in wide landskip all the east
+Of Paradise and Eden's happy plains,
+Lowly they bowed adoring, and began
+Their orisons, each morning duly paid
+In various style; for neither various style
+Nor holy rapture wanted they to praise
+Their Maker, in fit strains pronounced, or sung
+Unmeditated; such prompt eloquence
+Flowed from their lips, in prose or numerous verse,
+More tuneable than needed lute or harp
+To add more sweetness; and they thus began.
+These are thy glorious works, Parent of good,
+Almighty! Thine this universal frame,
+Thus wonderous fair; Thyself how wonderous then!
+Unspeakable, who sitst above these heavens
+To us invisible, or dimly seen
+In these thy lowest works; yet these declare
+Thy goodness beyond thought, and power divine.
+Speak, ye who best can tell, ye sons of light,
+Angels; for ye behold him, and with songs
+And choral symphonies, day without night,
+Circle his throne rejoicing; ye in Heaven
+On Earth join all ye Creatures to extol
+Him first, him last, him midst, and without end.
+Fairest of stars, last in the train of night,
+If better thou belong not to the dawn,
+Sure pledge of day, that crownest the smiling morn
+With thy bright circlet, praise him in thy sphere,
+While day arises, that sweet hour of prime.
+Thou Sun, of this great world both eye and soul,
+Acknowledge him thy greater; sound his praise
+In thy eternal course, both when thou climbest,
+And when high noon hast gained, and when thou fallest.
+Moon, that now meetest the orient sun, now flyest,
+With the fixed Stars, fixed in their orb that flies;
+And ye five other wandering Fires, that move
+In mystick dance not without song, resound
+His praise, who out of darkness called up light.
+Air, and ye Elements, the eldest birth
+Of Nature's womb, that in quaternion run
+Perpetual circle, multiform; and mix
+And nourish all things; let your ceaseless change
+Vary to our great Maker still new praise.
+Ye Mists and Exhalations, that now rise
+From hill or steaming lake, dusky or gray,
+Till the sun paint your fleecy skirts with gold,
+In honour to the world's great Author rise;
+Whether to deck with clouds the uncoloured sky,
+Or wet the thirsty earth with falling showers,
+Rising or falling still advance his praise.
+His praise, ye Winds, that from four quarters blow,
+Breathe soft or loud; and, wave your tops, ye Pines,
+With every plant, in sign of worship wave.
+Fountains, and ye that warble, as ye flow,
+Melodious murmurs, warbling tune his praise.
+Join voices, all ye living Souls: Ye Birds,
+That singing up to Heaven-gate ascend,
+Bear on your wings and in your notes his praise.
+Ye that in waters glide, and ye that walk
+The earth, and stately tread, or lowly creep;
+Witness if I be silent, morn or even,
+To hill, or valley, fountain, or fresh shade,
+Made vocal by my song, and taught his praise.
+Hail, universal Lord, be bounteous still
+To give us only good; and if the night
+Have gathered aught of evil, or concealed,
+Disperse it, as now light dispels the dark!
+So prayed they innocent, and to their thoughts
+Firm peace recovered soon, and wonted calm.
+On to their morning's rural work they haste,
+Among sweet dews and flowers; where any row
+Of fruit-trees over-woody reached too far
+Their pampered boughs, and needed hands to check
+Fruitless embraces: or they led the vine
+To wed her elm; she, spoused, about him twines
+Her marriageable arms, and with him brings
+Her dower, the adopted clusters, to adorn
+His barren leaves. Them thus employed beheld
+With pity Heaven's high King, and to him called
+Raphael, the sociable Spirit, that deigned
+To travel with Tobias, and secured
+His marriage with the seventimes-wedded maid.
+Raphael, said he, thou hearest what stir on Earth
+Satan, from Hell 'scaped through the darksome gulf,
+Hath raised in Paradise; and how disturbed
+This night the human pair; how he designs
+In them at once to ruin all mankind.
+Go therefore, half this day as friend with friend
+Converse with Adam, in what bower or shade
+Thou findest him from the heat of noon retired,
+To respite his day-labour with repast,
+Or with repose; and such discourse bring on,
+As may advise him of his happy state,
+Happiness in his power left free to will,
+Left to his own free will, his will though free,
+Yet mutable; whence warn him to beware
+He swerve not, too secure: Tell him withal
+His danger, and from whom; what enemy,
+Late fallen himself from Heaven, is plotting now
+The fall of others from like state of bliss;
+By violence? no, for that shall be withstood;
+But by deceit and lies: This let him know,
+Lest, wilfully transgressing, he pretend
+Surprisal, unadmonished, unforewarned.
+So spake the Eternal Father, and fulfilled
+All justice: Nor delayed the winged Saint
+After his charge received; but from among
+Thousand celestial Ardours, where he stood
+Veiled with his gorgeous wings, up springing light,
+Flew through the midst of Heaven; the angelick quires,
+On each hand parting, to his speed gave way
+Through all the empyreal road; till, at the gate
+Of Heaven arrived, the gate self-opened wide
+On golden hinges turning, as by work
+Divine the sovran Architect had framed.
+From hence no cloud, or, to obstruct his sight,
+Star interposed, however small he sees,
+Not unconformed to other shining globes,
+Earth, and the garden of God, with cedars crowned
+Above all hills. As when by night the glass
+Of Galileo, less assured, observes
+Imagined lands and regions in the moon:
+Or pilot, from amidst the Cyclades
+Delos or Samos first appearing, kens
+A cloudy spot. Down thither prone in flight
+He speeds, and through the vast ethereal sky
+Sails between worlds and worlds, with steady wing
+Now on the polar winds, then with quick fan
+Winnows the buxom air; till, within soar
+Of towering eagles, to all the fowls he seems
+A phoenix, gazed by all as that sole bird,
+When, to enshrine his reliques in the Sun's
+Bright temple, to Egyptian Thebes he flies.
+At once on the eastern cliff of Paradise
+He lights, and to his proper shape returns
+A Seraph winged: Six wings he wore, to shade
+His lineaments divine; the pair that clad
+Each shoulder broad, came mantling o'er his breast
+With regal ornament; the middle pair
+Girt like a starry zone his waist, and round
+Skirted his loins and thighs with downy gold
+And colours dipt in Heaven; the third his feet
+Shadowed from either heel with feathered mail,
+Sky-tinctured grain. Like Maia's son he stood,
+And shook his plumes, that heavenly fragrance filled
+The circuit wide. Straight knew him all the bands
+Of Angels under watch; and to his state,
+And to his message high, in honour rise;
+For on some message high they guessed him bound.
+Their glittering tents he passed, and now is come
+Into the blissful field, through groves of myrrh,
+And flowering odours, cassia, nard, and balm;
+A wilderness of sweets; for Nature here
+Wantoned as in her prime, and played at will
+Her virgin fancies pouring forth more sweet,
+Wild above rule or art, enormous bliss.
+Him through the spicy forest onward come
+Adam discerned, as in the door he sat
+Of his cool bower, while now the mounted sun
+Shot down direct his fervid rays to warm
+Earth's inmost womb, more warmth than Adam needs:
+And Eve within, due at her hour prepared
+For dinner savoury fruits, of taste to please
+True appetite, and not disrelish thirst
+Of nectarous draughts between, from milky stream,
+Berry or grape: To whom thus Adam called.
+Haste hither, Eve, and worth thy sight behold
+Eastward among those trees, what glorious shape
+Comes this way moving; seems another morn
+Risen on mid-noon; some great behest from Heaven
+To us perhaps he brings, and will vouchsafe
+This day to be our guest. But go with speed,
+And, what thy stores contain, bring forth, and pour
+Abundance, fit to honour and receive
+Our heavenly stranger: Well we may afford
+Our givers their own gifts, and large bestow
+From large bestowed, where Nature multiplies
+Her fertile growth, and by disburthening grows
+More fruitful, which instructs us not to spare.
+To whom thus Eve. Adam, earth's hallowed mould,
+Of God inspired! small store will serve, where store,
+All seasons, ripe for use hangs on the stalk;
+Save what by frugal storing firmness gains
+To nourish, and superfluous moist consumes:
+But I will haste, and from each bough and brake,
+Each plant and juciest gourd, will pluck such choice
+To entertain our Angel-guest, as he
+Beholding shall confess, that here on Earth
+God hath dispensed his bounties as in Heaven.
+So saying, with dispatchful looks in haste
+She turns, on hospitable thoughts intent
+What choice to choose for delicacy best,
+What order, so contrived as not to mix
+Tastes, not well joined, inelegant, but bring
+Taste after taste upheld with kindliest change;
+Bestirs her then, and from each tender stalk
+Whatever Earth, all-bearing mother, yields
+In India East or West, or middle shore
+In Pontus or the Punick coast, or where
+Alcinous reigned, fruit of all kinds, in coat
+Rough, or smooth rind, or bearded husk, or shell,
+She gathers, tribute large, and on the board
+Heaps with unsparing hand; for drink the grape
+She crushes, inoffensive must, and meaths
+From many a berry, and from sweet kernels pressed
+She tempers dulcet creams; nor these to hold
+Wants her fit vessels pure; then strows the ground
+With rose and odours from the shrub unfumed.
+Mean while our primitive great sire, to meet
+His God-like guest, walks forth, without more train
+Accompanied than with his own complete
+Perfections; in himself was all his state,
+More solemn than the tedious pomp that waits
+On princes, when their rich retinue long
+Of horses led, and grooms besmeared with gold,
+Dazzles the croud, and sets them all agape.
+Nearer his presence Adam, though not awed,
+Yet with submiss approach and reverence meek,
+As to a superiour nature bowing low,
+Thus said. Native of Heaven, for other place
+None can than Heaven such glorious shape contain;
+Since, by descending from the thrones above,
+Those happy places thou hast deigned a while
+To want, and honour these, vouchsafe with us
+Two only, who yet by sovran gift possess
+This spacious ground, in yonder shady bower
+To rest; and what the garden choicest bears
+To sit and taste, till this meridian heat
+Be over, and the sun more cool decline.
+Whom thus the angelick Virtue answered mild.
+Adam, I therefore came; nor art thou such
+Created, or such place hast here to dwell,
+As may not oft invite, though Spirits of Heaven,
+To visit thee; lead on then where thy bower
+O'ershades; for these mid-hours, till evening rise,
+I have at will. So to the sylvan lodge
+They came, that like Pomona's arbour smiled,
+With flowerets decked, and fragrant smells; but Eve,
+Undecked save with herself, more lovely fair
+Than Wood-Nymph, or the fairest Goddess feigned
+Of three that in mount Ida naked strove,
+Stood to entertain her guest from Heaven; no veil
+She needed, virtue-proof; no thought infirm
+Altered her cheek. On whom the Angel Hail
+Bestowed, the holy salutation used
+Long after to blest Mary, second Eve.
+Hail, Mother of Mankind, whose fruitful womb
+Shall fill the world more numerous with thy sons,
+Than with these various fruits the trees of God
+Have heaped this table!--Raised of grassy turf
+Their table was, and mossy seats had round,
+And on her ample square from side to side
+All autumn piled, though spring and autumn here
+Danced hand in hand. A while discourse they hold;
+No fear lest dinner cool; when thus began
+Our author. Heavenly stranger, please to taste
+These bounties, which our Nourisher, from whom
+All perfect good, unmeasured out, descends,
+To us for food and for delight hath caused
+The earth to yield; unsavoury food perhaps
+To spiritual natures; only this I know,
+That one celestial Father gives to all.
+To whom the Angel. Therefore what he gives
+(Whose praise be ever sung) to Man in part
+Spiritual, may of purest Spirits be found
+No ingrateful food: And food alike those pure
+Intelligential substances require,
+As doth your rational; and both contain
+Within them every lower faculty
+Of sense, whereby they hear, see, smell, touch, taste,
+Tasting concoct, digest, assimilate,
+And corporeal to incorporeal turn.
+For know, whatever was created, needs
+To be sustained and fed: Of elements
+The grosser feeds the purer, earth the sea,
+Earth and the sea feed air, the air those fires
+Ethereal, and as lowest first the moon;
+Whence in her visage round those spots, unpurged
+Vapours not yet into her substance turned.
+Nor doth the moon no nourishment exhale
+From her moist continent to higher orbs.
+The sun that light imparts to all, receives
+From all his alimental recompence
+In humid exhalations, and at even
+Sups with the ocean. Though in Heaven the trees
+Of life ambrosial fruitage bear, and vines
+Yield nectar; though from off the boughs each morn
+We brush mellifluous dews, and find the ground
+Covered with pearly grain: Yet God hath here
+Varied his bounty so with new delights,
+As may compare with Heaven; and to taste
+Think not I shall be nice. So down they sat,
+And to their viands fell; nor seemingly
+The Angel, nor in mist, the common gloss
+Of Theologians; but with keen dispatch
+Of real hunger, and concoctive heat
+To transubstantiate: What redounds, transpires
+Through Spirits with ease; nor wonder;if by fire
+Of sooty coal the empirick alchemist
+Can turn, or holds it possible to turn,
+Metals of drossiest ore to perfect gold,
+As from the mine. Mean while at table Eve
+Ministered naked, and their flowing cups
+With pleasant liquours crowned: O innocence
+Deserving Paradise! if ever, then,
+Then had the sons of God excuse to have been
+Enamoured at that sight; but in those hearts
+Love unlibidinous reigned, nor jealousy
+Was understood, the injured lover's hell.
+Thus when with meats and drinks they had sufficed,
+Not burdened nature, sudden mind arose
+In Adam, not to let the occasion pass
+Given him by this great conference to know
+Of things above his world, and of their being
+Who dwell in Heaven, whose excellence he saw
+Transcend his own so far; whose radiant forms,
+Divine effulgence, whose high power, so far
+Exceeded human; and his wary speech
+Thus to the empyreal minister he framed.
+Inhabitant with God, now know I well
+Thy favour, in this honour done to Man;
+Under whose lowly roof thou hast vouchsafed
+To enter, and these earthly fruits to taste,
+Food not of Angels, yet accepted so,
+As that more willingly thou couldst not seem
+At Heaven's high feasts to have fed: yet what compare
+To whom the winged Hierarch replied.
+O Adam, One Almighty is, from whom
+All things proceed, and up to him return,
+If not depraved from good, created all
+Such to perfection, one first matter all,
+Endued with various forms, various degrees
+Of substance, and, in things that live, of life;
+But more refined, more spiritous, and pure,
+As nearer to him placed, or nearer tending
+Each in their several active spheres assigned,
+Till body up to spirit work, in bounds
+Proportioned to each kind. So from the root
+Springs lighter the green stalk, from thence the leaves
+More aery, last the bright consummate flower
+Spirits odorous breathes: flowers and their fruit,
+Man's nourishment, by gradual scale sublimed,
+To vital spirits aspire, to animal,
+To intellectual; give both life and sense,
+Fancy and understanding; whence the soul
+Reason receives, and reason is her being,
+Discursive, or intuitive; discourse
+Is oftest yours, the latter most is ours,
+Differing but in degree, of kind the same.
+Wonder not then, what God for you saw good
+If I refuse not, but convert, as you
+To proper substance. Time may come, when Men
+With Angels may participate, and find
+No inconvenient diet, nor too light fare;
+And from these corporal nutriments perhaps
+Your bodies may at last turn all to spirit,
+Improved by tract of time, and, winged, ascend
+Ethereal, as we; or may, at choice,
+Here or in heavenly Paradises dwell;
+If ye be found obedient, and retain
+Unalterably firm his love entire,
+Whose progeny you are. Mean while enjoy
+Your fill what happiness this happy state
+Can comprehend, incapable of more.
+To whom the patriarch of mankind replied.
+O favourable Spirit, propitious guest,
+Well hast thou taught the way that might direct
+Our knowledge, and the scale of nature set
+From center to circumference; whereon,
+In contemplation of created things,
+By steps we may ascend to God. But say,
+What meant that caution joined, If ye be found
+Obedient? Can we want obedience then
+To him, or possibly his love desert,
+Who formed us from the dust and placed us here
+Full to the utmost measure of what bliss
+Human desires can seek or apprehend?
+To whom the Angel. Son of Heaven and Earth,
+Attend! That thou art happy, owe to God;
+That thou continuest such, owe to thyself,
+That is, to thy obedience; therein stand.
+This was that caution given thee; be advised.
+God made thee perfect, not immutable;
+And good he made thee, but to persevere
+He left it in thy power; ordained thy will
+By nature free, not over-ruled by fate
+Inextricable, or strict necessity:
+Our voluntary service he requires,
+Not our necessitated; such with him
+Finds no acceptance, nor can find; for how
+Can hearts, not free, be tried whether they serve
+Willing or no, who will but what they must
+By destiny, and can no other choose?
+Myself, and all the angelick host, that stand
+In sight of God, enthroned, our happy state
+Hold, as you yours, while our obedience holds;
+On other surety none: Freely we serve,
+Because we freely love, as in our will
+To love or not; in this we stand or fall:
+And some are fallen, to disobedience fallen,
+And so from Heaven to deepest Hell; O fall
+From what high state of bliss, into what woe!
+To whom our great progenitor. Thy words
+Attentive, and with more delighted ear,
+Divine instructer, I have heard, than when
+Cherubick songs by night from neighbouring hills
+Aereal musick send: Nor knew I not
+To be both will and deed created free;
+Yet that we never shall forget to love
+Our Maker, and obey him whose command
+Single is yet so just, my constant thoughts
+Assured me, and still assure: Though what thou tellest
+Hath passed in Heaven, some doubt within me move,
+But more desire to hear, if thou consent,
+The full relation, which must needs be strange,
+Worthy of sacred silence to be heard;
+And we have yet large day, for scarce the sun
+Hath finished half his journey, and scarce begins
+His other half in the great zone of Heaven.
+Thus Adam made request; and Raphael,
+After short pause assenting, thus began.
+High matter thou enjoinest me, O prime of men,
+Sad task and hard: For how shall I relate
+To human sense the invisible exploits
+Of warring Spirits? how, without remorse,
+The ruin of so many glorious once
+And perfect while they stood? how last unfold
+The secrets of another world, perhaps
+Not lawful to reveal? yet for thy good
+This is dispensed; and what surmounts the reach
+Of human sense, I shall delineate so,
+By likening spiritual to corporal forms,
+As may express them best; though what if Earth
+Be but a shadow of Heaven, and things therein
+Each to other like, more than on earth is thought?
+As yet this world was not, and Chaos wild
+Reigned where these Heavens now roll, where Earth now rests
+Upon her center poised; when on a day
+(For time, though in eternity, applied
+To motion, measures all things durable
+By present, past, and future,) on such day
+As Heaven's great year brings forth, the empyreal host
+Of Angels by imperial summons called,
+Innumerable before the Almighty's throne
+Forthwith, from all the ends of Heaven, appeared
+Under their Hierarchs in orders bright:
+Ten thousand thousand ensigns high advanced,
+Standards and gonfalons 'twixt van and rear
+Stream in the air, and for distinction serve
+Of hierarchies, of orders, and degrees;
+Or in their glittering tissues bear imblazed
+Holy memorials, acts of zeal and love
+Recorded eminent. Thus when in orbs
+Of circuit inexpressible they stood,
+Orb within orb, the Father Infinite,
+By whom in bliss imbosomed sat the Son,
+Amidst as from a flaming mount, whose top
+Brightness had made invisible, thus spake.
+Hear, all ye Angels, progeny of light,
+Thrones, Dominations, Princedoms, Virtues, Powers;
+Hear my decree, which unrevoked shall stand.
+This day I have begot whom I declare
+My only Son, and on this holy hill
+Him have anointed, whom ye now behold
+At my right hand; your head I him appoint;
+And by myself have sworn, to him shall bow
+All knees in Heaven, and shall confess him Lord:
+Under his great vice-gerent reign abide
+United, as one individual soul,
+For ever happy: Him who disobeys,
+Me disobeys, breaks union, and that day,
+Cast out from God and blessed vision, falls
+Into utter darkness, deep ingulfed, his place
+Ordained without redemption, without end.
+So spake the Omnipotent, and with his words
+All seemed well pleased; all seemed, but were not all.
+That day, as other solemn days, they spent
+In song and dance about the sacred hill;
+Mystical dance, which yonder starry sphere
+Of planets, and of fixed, in all her wheels
+Resembles nearest, mazes intricate,
+Eccentrick, intervolved, yet regular
+Then most, when most irregular they seem;
+And in their motions harmony divine
+So smooths her charming tones, that God's own ear
+Listens delighted. Evening now approached,
+(For we have also our evening and our morn,
+We ours for change delectable, not need;)
+Forthwith from dance to sweet repast they turn
+Desirous; all in circles as they stood,
+Tables are set, and on a sudden piled
+With Angels food, and rubied nectar flows
+In pearl, in diamond, and massy gold,
+Fruit of delicious vines, the growth of Heaven.
+On flowers reposed, and with fresh flowerets crowned,
+They eat, they drink, and in communion sweet
+Quaff immortality and joy, secure
+Of surfeit, where full measure only bounds
+Excess, before the all-bounteous King, who showered
+With copious hand, rejoicing in their joy.
+Now when ambrosial night with clouds exhaled
+From that high mount of God, whence light and shade
+Spring both, the face of brightest Heaven had changed
+To grateful twilight, (for night comes not there
+In darker veil,) and roseat dews disposed
+All but the unsleeping eyes of God to rest;
+Wide over all the plain, and wider far
+Than all this globous earth in plain outspread,
+(Such are the courts of God) the angelick throng,
+Dispersed in bands and files, their camp extend
+By living streams among the trees of life,
+Pavilions numberless, and sudden reared,
+Celestial tabernacles, where they slept
+Fanned with cool winds; save those, who, in their course,
+Melodious hymns about the sovran throne
+Alternate all night long: but not so waked
+Satan; so call him now, his former name
+Is heard no more in Heaven; he of the first,
+If not the first Arch-Angel, great in power,
+In favour and pre-eminence, yet fraught
+With envy against the Son of God, that day
+Honoured by his great Father, and proclaimed
+Messiah King anointed, could not bear
+Through pride that sight, and thought himself impaired.
+Deep malice thence conceiving and disdain,
+Soon as midnight brought on the dusky hour
+Friendliest to sleep and silence, he resolved
+With all his legions to dislodge, and leave
+Unworshipt, unobeyed, the throne supreme,
+Contemptuous; and his next subordinate
+Awakening, thus to him in secret spake.
+Sleepest thou, Companion dear? What sleep can close
+Thy eye-lids? and rememberest what decree
+Of yesterday, so late hath passed the lips
+Of Heaven's Almighty. Thou to me thy thoughts
+Wast wont, I mine to thee was wont to impart;
+Both waking we were one; how then can now
+Thy sleep dissent? New laws thou seest imposed;
+New laws from him who reigns, new minds may raise
+In us who serve, new counsels to debate
+What doubtful may ensue: More in this place
+To utter is not safe. Assemble thou
+Of all those myriads which we lead the chief;
+Tell them, that by command, ere yet dim night
+Her shadowy cloud withdraws, I am to haste,
+And all who under me their banners wave,
+Homeward, with flying march, where we possess
+The quarters of the north; there to prepare
+Fit entertainment to receive our King,
+The great Messiah, and his new commands,
+Who speedily through all the hierarchies
+Intends to pass triumphant, and give laws.
+So spake the false Arch-Angel, and infused
+Bad influence into the unwary breast
+Of his associate: He together calls,
+Or several one by one, the regent Powers,
+Under him Regent; tells, as he was taught,
+That the Most High commanding, now ere night,
+Now ere dim night had disincumbered Heaven,
+The great hierarchal standard was to move;
+Tells the suggested cause, and casts between
+Ambiguous words and jealousies, to sound
+Or taint integrity: But all obeyed
+The wonted signal, and superiour voice
+Of their great Potentate; for great indeed
+His name, and high was his degree in Heaven;
+His countenance, as the morning-star that guides
+The starry flock, allured them, and with lies
+Drew after him the third part of Heaven's host.
+Mean while the Eternal eye, whose sight discerns
+Abstrusest thoughts, from forth his holy mount,
+And from within the golden lamps that burn
+Nightly before him, saw without their light
+Rebellion rising; saw in whom, how spread
+Among the sons of morn, what multitudes
+Were banded to oppose his high decree;
+And, smiling, to his only Son thus said.
+Son, thou in whom my glory I behold
+In full resplendence, Heir of all my might,
+Nearly it now concerns us to be sure
+Of our Omnipotence, and with what arms
+We mean to hold what anciently we claim
+Of deity or empire: Such a foe
+Is rising, who intends to erect his throne
+Equal to ours, throughout the spacious north;
+Nor so content, hath in his thought to try
+In battle, what our power is, or our right.
+Let us advise, and to this hazard draw
+With speed what force is left, and all employ
+In our defence; lest unawares we lose
+This our high place, our sanctuary, our hill.
+To whom the Son with calm aspect and clear,
+Lightning divine, ineffable, serene,
+Made answer. Mighty Father, thou thy foes
+Justly hast in derision, and, secure,
+Laughest at their vain designs and tumults vain,
+Matter to me of glory, whom their hate
+Illustrates, when they see all regal power
+Given me to quell their pride, and in event
+Know whether I be dextrous to subdue
+Thy rebels, or be found the worst in Heaven.
+So spake the Son; but Satan, with his Powers,
+Far was advanced on winged speed; an host
+Innumerable as the stars of night,
+Or stars of morning, dew-drops, which the sun
+Impearls on every leaf and every flower.
+Regions they passed, the mighty regencies
+Of Seraphim, and Potentates, and Thrones,
+In their triple degrees; regions to which
+All thy dominion, Adam, is no more
+Than what this garden is to all the earth,
+And all the sea, from one entire globose
+Stretched into longitude; which having passed,
+At length into the limits of the north
+They came; and Satan to his royal seat
+High on a hill, far blazing, as a mount
+Raised on a mount, with pyramids and towers
+From diamond quarries hewn, and rocks of gold;
+The palace of great Lucifer, (so call
+That structure in the dialect of men
+Interpreted,) which not long after, he
+Affecting all equality with God,
+In imitation of that mount whereon
+Messiah was declared in sight of Heaven,
+The Mountain of the Congregation called;
+For thither he assembled all his train,
+Pretending so commanded to consult
+About the great reception of their King,
+Thither to come, and with calumnious art
+Of counterfeited truth thus held their ears.
+Thrones, Dominations, Princedoms, Virtues, Powers;
+If these magnifick titles yet remain
+Not merely titular, since by decree
+Another now hath to himself engrossed
+All power, and us eclipsed under the name
+Of King anointed, for whom all this haste
+Of midnight-march, and hurried meeting here,
+This only to consult how we may best,
+With what may be devised of honours new,
+Receive him coming to receive from us
+Knee-tribute yet unpaid, prostration vile!
+Too much to one! but double how endured,
+To one, and to his image now proclaimed?
+But what if better counsels might erect
+Our minds, and teach us to cast off this yoke?
+Will ye submit your necks, and choose to bend
+The supple knee? Ye will not, if I trust
+To know ye right, or if ye know yourselves
+Natives and sons of Heaven possessed before
+By none; and if not equal all, yet free,
+Equally free; for orders and degrees
+Jar not with liberty, but well consist.
+Who can in reason then, or right, assume
+Monarchy over such as live by right
+His equals, if in power and splendour less,
+In freedom equal? or can introduce
+Law and edict on us, who without law
+Err not? much less for this to be our Lord,
+And look for adoration, to the abuse
+Of those imperial titles, which assert
+Our being ordained to govern, not to serve.
+Thus far his bold discourse without controul
+Had audience; when among the Seraphim
+Abdiel, than whom none with more zeal adored
+The Deity, and divine commands obeyed,
+Stood up, and in a flame of zeal severe
+The current of his fury thus opposed.
+O argument blasphemous, false, and proud!
+Words which no ear ever to hear in Heaven
+Expected, least of all from thee, Ingrate,
+In place thyself so high above thy peers.
+Canst thou with impious obloquy condemn
+The just decree of God, pronounced and sworn,
+That to his only Son, by right endued
+With regal scepter, every soul in Heaven
+Shall bend the knee, and in that honour due
+Confess him rightful King? unjust, thou sayest,
+Flatly unjust, to bind with laws the free,
+And equal over equals to let reign,
+One over all with unsucceeded power.
+Shalt thou give law to God? shalt thou dispute
+With him the points of liberty, who made
+Thee what thou art, and formed the Powers of Heaven
+Such as he pleased, and circumscribed their being?
+Yet, by experience taught, we know how good,
+And of our good and of our dignity
+How provident he is; how far from thought
+To make us less, bent rather to exalt
+Our happy state, under one head more near
+United. But to grant it thee unjust,
+That equal over equals monarch reign:
+Thyself, though great and glorious, dost thou count,
+Or all angelick nature joined in one,
+Equal to him begotten Son? by whom,
+As by his Word, the Mighty Father made
+All things, even thee; and all the Spirits of Heaven
+By him created in their bright degrees,
+Crowned them with glory, and to their glory named
+Thrones, Dominations, Princedoms, Virtues, Powers,
+Essential Powers; nor by his reign obscured,
+But more illustrious made; since he the head
+One of our number thus reduced becomes;
+His laws our laws; all honour to him done
+Returns our own. Cease then this impious rage,
+And tempt not these; but hasten to appease
+The incensed Father, and the incensed Son,
+While pardon may be found in time besought.
+So spake the fervent Angel; but his zeal
+None seconded, as out of season judged,
+Or singular and rash: Whereat rejoiced
+The Apostate, and, more haughty, thus replied.
+That we were formed then sayest thou? and the work
+Of secondary hands, by task transferred
+From Father to his Son? strange point and new!
+Doctrine which we would know whence learned: who saw
+When this creation was? rememberest thou
+Thy making, while the Maker gave thee being?
+We know no time when we were not as now;
+Know none before us, self-begot, self-raised
+By our own quickening power, when fatal course
+Had circled his full orb, the birth mature
+Of this our native Heaven, ethereal sons.
+Our puissance is our own; our own right hand
+Shall teach us highest deeds, by proof to try
+Who is our equal: Then thou shalt behold
+Whether by supplication we intend
+Address, and to begirt the almighty throne
+Beseeching or besieging. This report,
+These tidings carry to the anointed King;
+And fly, ere evil intercept thy flight.
+He said; and, as the sound of waters deep,
+Hoarse murmur echoed to his words applause
+Through the infinite host; nor less for that
+The flaming Seraph fearless, though alone
+Encompassed round with foes, thus answered bold.
+O alienate from God, O Spirit accursed,
+Forsaken of all good! I see thy fall
+Determined, and thy hapless crew involved
+In this perfidious fraud, contagion spread
+Both of thy crime and punishment: Henceforth
+No more be troubled how to quit the yoke
+Of God's Messiah; those indulgent laws
+Will not be now vouchsafed; other decrees
+Against thee are gone forth without recall;
+That golden scepter, which thou didst reject,
+Is now an iron rod to bruise and break
+Thy disobedience. Well thou didst advise;
+Yet not for thy advice or threats I fly
+These wicked tents devoted, lest the wrath
+Impendent, raging into sudden flame,
+Distinguish not: For soon expect to feel
+His thunder on thy head, devouring fire.
+Then who created thee lamenting learn,
+When who can uncreate thee thou shalt know.
+So spake the Seraph Abdiel, faithful found
+Among the faithless, faithful only he;
+Among innumerable false, unmoved,
+Unshaken, unseduced, unterrified,
+His loyalty he kept, his love, his zeal;
+Nor number, nor example, with him wrought
+To swerve from truth, or change his constant mind,
+Though single. From amidst them forth he passed,
+Long way through hostile scorn, which he sustained
+Superiour, nor of violence feared aught;
+And, with retorted scorn, his back he turned
+On those proud towers to swift destruction doomed.
+
+
+
+Book VI
+
+
+All night the dreadless Angel, unpursued,
+Through Heaven's wide champain held his way; till Morn,
+Waked by the circling Hours, with rosy hand
+Unbarred the gates of light. There is a cave
+Within the mount of God, fast by his throne,
+Where light and darkness in perpetual round
+Lodge and dislodge by turns, which makes through Heaven
+Grateful vicissitude, like day and night;
+Light issues forth, and at the other door
+Obsequious darkness enters, till her hour
+To veil the Heaven, though darkness there might well
+Seem twilight here: And now went forth the Morn
+Such as in highest Heaven arrayed in gold
+Empyreal; from before her vanished Night,
+Shot through with orient beams; when all the plain
+Covered with thick embattled squadrons bright,
+Chariots, and flaming arms, and fiery steeds,
+Reflecting blaze on blaze, first met his view:
+War he perceived, war in procinct; and found
+Already known what he for news had thought
+To have reported: Gladly then he mixed
+Among those friendly Powers, who him received
+With joy and acclamations loud, that one,
+That of so many myriads fallen, yet one
+Returned not lost. On to the sacred hill
+They led him high applauded, and present
+Before the seat supreme; from whence a voice,
+From midst a golden cloud, thus mild was heard.
+Servant of God. Well done; well hast thou fought
+The better fight, who single hast maintained
+Against revolted multitudes the cause
+Of truth, in word mightier than they in arms;
+And for the testimony of truth hast borne
+Universal reproach, far worse to bear
+Than violence; for this was all thy care
+To stand approved in sight of God, though worlds
+Judged thee perverse: The easier conquest now
+Remains thee, aided by this host of friends,
+Back on thy foes more glorious to return,
+Than scorned thou didst depart; and to subdue
+By force, who reason for their law refuse,
+Right reason for their law, and for their King
+Messiah, who by right of merit reigns.
+Go, Michael, of celestial armies prince,
+And thou, in military prowess next,
+Gabriel, lead forth to battle these my sons
+Invincible; lead forth my armed Saints,
+By thousands and by millions, ranged for fight,
+Equal in number to that Godless crew
+Rebellious: Them with fire and hostile arms
+Fearless assault; and, to the brow of Heaven
+Pursuing, drive them out from God and bliss,
+Into their place of punishment, the gulf
+Of Tartarus, which ready opens wide
+His fiery Chaos to receive their fall.
+So spake the Sovran Voice, and clouds began
+To darken all the hill, and smoke to roll
+In dusky wreaths, reluctant flames, the sign
+Of wrath awaked; nor with less dread the loud
+Ethereal trumpet from on high 'gan blow:
+At which command the Powers militant,
+That stood for Heaven, in mighty quadrate joined
+Of union irresistible, moved on
+In silence their bright legions, to the sound
+Of instrumental harmony, that breathed
+Heroick ardour to adventurous deeds
+Under their God-like leaders, in the cause
+Of God and his Messiah. On they move
+Indissolubly firm; nor obvious hill,
+Nor straitening vale, nor wood, nor stream, divides
+Their perfect ranks; for high above the ground
+Their march was, and the passive air upbore
+Their nimble tread; as when the total kind
+Of birds, in orderly array on wing,
+Came summoned over Eden to receive
+Their names of thee; so over many a tract
+Of Heaven they marched, and many a province wide,
+Tenfold the length of this terrene: At last,
+Far in the horizon to the north appeared
+From skirt to skirt a fiery region, stretched
+In battailous aspect, and nearer view
+Bristled with upright beams innumerable
+Of rigid spears, and helmets thronged, and shields
+Various, with boastful argument portrayed,
+The banded Powers of Satan hasting on
+With furious expedition; for they weened
+That self-same day, by fight or by surprise,
+To win the mount of God, and on his throne
+To set the Envier of his state, the proud
+Aspirer; but their thoughts proved fond and vain
+In the mid way: Though strange to us it seemed
+At first, that Angel should with Angel war,
+And in fierce hosting meet, who wont to meet
+So oft in festivals of joy and love
+Unanimous, as sons of one great Sire,
+Hymning the Eternal Father: But the shout
+Of battle now began, and rushing sound
+Of onset ended soon each milder thought.
+High in the midst, exalted as a God,
+The Apostate in his sun-bright chariot sat,
+Idol of majesty divine, enclosed
+With flaming Cherubim, and golden shields;
+Then lighted from his gorgeous throne, for now
+"twixt host and host but narrow space was left,
+A dreadful interval, and front to front
+Presented stood in terrible array
+Of hideous length: Before the cloudy van,
+On the rough edge of battle ere it joined,
+Satan, with vast and haughty strides advanced,
+Came towering, armed in adamant and gold;
+Abdiel that sight endured not, where he stood
+Among the mightiest, bent on highest deeds,
+And thus his own undaunted heart explores.
+O Heaven! that such resemblance of the Highest
+Should yet remain, where faith and realty
+Remain not: Wherefore should not strength and might
+There fail where virtue fails, or weakest prove
+Where boldest, though to fight unconquerable?
+His puissance, trusting in the Almighty's aid,
+I mean to try, whose reason I have tried
+Unsound and false; nor is it aught but just,
+That he, who in debate of truth hath won,
+Should win in arms, in both disputes alike
+Victor; though brutish that contest and foul,
+When reason hath to deal with force, yet so
+Most reason is that reason overcome.
+So pondering, and from his armed peers
+Forth stepping opposite, half-way he met
+His daring foe, at this prevention more
+Incensed, and thus securely him defied.
+Proud, art thou met? thy hope was to have reached
+The highth of thy aspiring unopposed,
+The throne of God unguarded, and his side
+Abandoned, at the terrour of thy power
+Or potent tongue: Fool!not to think how vain
+Against the Omnipotent to rise in arms;
+Who out of smallest things could, without end,
+Have raised incessant armies to defeat
+Thy folly; or with solitary hand
+Reaching beyond all limit, at one blow,
+Unaided, could have finished thee, and whelmed
+Thy legions under darkness: But thou seest
+All are not of thy train; there be, who faith
+Prefer, and piety to God, though then
+To thee not visible, when I alone
+Seemed in thy world erroneous to dissent
+From all: My sect thou seest;now learn too late
+How few sometimes may know, when thousands err.
+Whom the grand foe, with scornful eye askance,
+Thus answered. Ill for thee, but in wished hour
+Of my revenge, first sought for, thou returnest
+From flight, seditious Angel! to receive
+Thy merited reward, the first assay
+Of this right hand provoked, since first that tongue,
+Inspired with contradiction, durst oppose
+A third part of the Gods, in synod met
+Their deities to assert; who, while they feel
+Vigour divine within them, can allow
+Omnipotence to none. But well thou comest
+Before thy fellows, ambitious to win
+From me some plume, that thy success may show
+Destruction to the rest: This pause between,
+(Unanswered lest thou boast) to let thee know,
+At first I thought that Liberty and Heaven
+To heavenly souls had been all one; but now
+I see that most through sloth had rather serve,
+Ministring Spirits, trained up in feast and song!
+Such hast thou armed, the minstrelsy of Heaven,
+Servility with freedom to contend,
+As both their deeds compared this day shall prove.
+To whom in brief thus Abdiel stern replied.
+Apostate! still thou errest, nor end wilt find
+Of erring, from the path of truth remote:
+Unjustly thou depravest it with the name
+Of servitude, to serve whom God ordains,
+Or Nature: God and Nature bid the same,
+When he who rules is worthiest, and excels
+Them whom he governs. This is servitude,
+To serve the unwise, or him who hath rebelled
+Against his worthier, as thine now serve thee,
+Thyself not free, but to thyself enthralled;
+Yet lewdly darest our ministring upbraid.
+Reign thou in Hell, thy kingdom; let me serve
+In Heaven God ever blest, and his divine
+Behests obey, worthiest to be obeyed;
+Yet chains in Hell, not realms, expect: Mean while
+From me returned, as erst thou saidst, from flight,
+This greeting on thy impious crest receive.
+So saying, a noble stroke he lifted high,
+Which hung not, but so swift with tempest fell
+On the proud crest of Satan, that no sight,
+Nor motion of swift thought, less could his shield,
+Such ruin intercept: Ten paces huge
+He back recoiled; the tenth on bended knee
+His massy spear upstaid; as if on earth
+Winds under ground, or waters forcing way,
+Sidelong had pushed a mountain from his seat,
+Half sunk with all his pines. Amazement seised
+The rebel Thrones, but greater rage, to see
+Thus foiled their mightiest; ours joy filled, and shout,
+Presage of victory, and fierce desire
+Of battle: Whereat Michael bid sound
+The Arch-Angel trumpet; through the vast of Heaven
+It sounded, and the faithful armies rung
+Hosanna to the Highest: Nor stood at gaze
+The adverse legions, nor less hideous joined
+The horrid shock. Now storming fury rose,
+And clamour such as heard in Heaven till now
+Was never; arms on armour clashing brayed
+Horrible discord, and the madding wheels
+Of brazen chariots raged; dire was the noise
+Of conflict; over head the dismal hiss
+Of fiery darts in flaming vollies flew,
+And flying vaulted either host with fire.
+So under fiery cope together rushed
+Both battles main, with ruinous assault
+And inextinguishable rage. All Heaven
+Resounded; and had Earth been then, all Earth
+Had to her center shook. What wonder? when
+Millions of fierce encountering Angels fought
+On either side, the least of whom could wield
+These elements, and arm him with the force
+Of all their regions: How much more of power
+Army against army numberless to raise
+Dreadful combustion warring, and disturb,
+Though not destroy, their happy native seat;
+Had not the Eternal King Omnipotent,
+From his strong hold of Heaven, high over-ruled
+And limited their might; though numbered such
+As each divided legion might have seemed
+A numerous host; in strength each armed hand
+A legion; led in fight, yet leader seemed
+Each warriour single as in chief, expert
+When to advance, or stand, or turn the sway
+Of battle, open when, and when to close
+The ridges of grim war: No thought of flight,
+None of retreat, no unbecoming deed
+That argued fear; each on himself relied,
+As only in his arm the moment lay
+Of victory: Deeds of eternal fame
+Were done, but infinite; for wide was spread
+That war and various; sometimes on firm ground
+A standing fight, then, soaring on main wing,
+Tormented all the air; all air seemed then
+Conflicting fire. Long time in even scale
+The battle hung; till Satan, who that day
+Prodigious power had shown, and met in arms
+No equal, ranging through the dire attack
+Of fighting Seraphim confused, at length
+Saw where the sword of Michael smote, and felled
+Squadrons at once; with huge two-handed sway
+Brandished aloft, the horrid edge came down
+Wide-wasting; such destruction to withstand
+He hasted, and opposed the rocky orb
+Of tenfold adamant, his ample shield,
+A vast circumference. At his approach
+The great Arch-Angel from his warlike toil
+Surceased, and glad, as hoping here to end
+Intestine war in Heaven, the arch-foe subdued
+Or captive dragged in chains, with hostile frown
+And visage all inflamed first thus began.
+Author of evil, unknown till thy revolt,
+Unnamed in Heaven, now plenteous as thou seest
+These acts of hateful strife, hateful to all,
+Though heaviest by just measure on thyself,
+And thy adherents: How hast thou disturbed
+Heaven's blessed peace, and into nature brought
+Misery, uncreated till the crime
+Of thy rebellion! how hast thou instilled
+Thy malice into thousands, once upright
+And faithful, now proved false! But think not here
+To trouble holy rest; Heaven casts thee out
+From all her confines. Heaven, the seat of bliss,
+Brooks not the works of violence and war.
+Hence then, and evil go with thee along,
+Thy offspring, to the place of evil, Hell;
+Thou and thy wicked crew! there mingle broils,
+Ere this avenging sword begin thy doom,
+Or some more sudden vengeance, winged from God,
+Precipitate thee with augmented pain.
+So spake the Prince of Angels; to whom thus
+The Adversary. Nor think thou with wind
+Of aery threats to awe whom yet with deeds
+Thou canst not. Hast thou turned the least of these
+To flight, or if to fall, but that they rise
+Unvanquished, easier to transact with me
+That thou shouldst hope, imperious, and with threats
+To chase me hence? err not, that so shall end
+The strife which thou callest evil, but we style
+The strife of glory; which we mean to win,
+Or turn this Heaven itself into the Hell
+Thou fablest; here however to dwell free,
+If not to reign: Mean while thy utmost force,
+And join him named Almighty to thy aid,
+I fly not, but have sought thee far and nigh.
+They ended parle, and both addressed for fight
+Unspeakable; for who, though with the tongue
+Of Angels, can relate, or to what things
+Liken on earth conspicuous, that may lift
+Human imagination to such highth
+Of Godlike power? for likest Gods they seemed,
+Stood they or moved, in stature, motion, arms,
+Fit to decide the empire of great Heaven.
+Now waved their fiery swords, and in the air
+Made horrid circles; two broad suns their shields
+Blazed opposite, while Expectation stood
+In horrour: From each hand with speed retired,
+Where erst was thickest fight, the angelick throng,
+And left large field, unsafe within the wind
+Of such commotion; such as, to set forth
+Great things by small, if, nature's concord broke,
+Among the constellations war were sprung,
+Two planets, rushing from aspect malign
+Of fiercest opposition, in mid sky
+Should combat, and their jarring spheres confound.
+Together both with next to almighty arm
+Up-lifted imminent, one stroke they aimed
+That might determine, and not need repeat,
+As not of power at once; nor odds appeared
+In might or swift prevention: But the sword
+Of Michael from the armoury of God
+Was given him tempered so, that neither keen
+Nor solid might resist that edge: it met
+The sword of Satan, with steep force to smite
+Descending, and in half cut sheer; nor staid,
+But with swift wheel reverse, deep entering, shared
+All his right side: Then Satan first knew pain,
+And writhed him to and fro convolved; so sore
+The griding sword with discontinuous wound
+Passed through him: But the ethereal substance closed,
+Not long divisible; and from the gash
+A stream of necturous humour issuing flowed
+Sanguine, such as celestial Spirits may bleed,
+And all his armour stained, ere while so bright.
+Forthwith on all sides to his aid was run
+By Angels many and strong, who interposed
+Defence, while others bore him on their shields
+Back to his chariot, where it stood retired
+From off the files of war: There they him laid
+Gnashing for anguish, and despite, and shame,
+To find himself not matchless, and his pride
+Humbled by such rebuke, so far beneath
+His confidence to equal God in power.
+Yet soon he healed; for Spirits that live throughout
+Vital in every part, not as frail man
+In entrails, heart of head, liver or reins,
+Cannot but by annihilating die;
+Nor in their liquid texture mortal wound
+Receive, no more than can the fluid air:
+All heart they live, all head, all eye, all ear,
+All intellect, all sense; and, as they please,
+They limb themselves, and colour, shape, or size
+Assume, as?kikes them best, condense or rare.
+Mean while in other parts like deeds deserved
+Memorial, where the might of Gabriel fought,
+And with fierce ensigns pierced the deep array
+Of Moloch, furious king; who him defied,
+And at his chariot-wheels to drag him bound
+Threatened, nor from the Holy One of Heaven
+Refrained his tongue blasphemous; but anon
+Down cloven to the waist, with shattered arms
+And uncouth pain fled bellowing. On each wing
+Uriel, and Raphael, his vaunting foe,
+Though huge, and in a rock of diamond armed,
+Vanquished Adramelech, and Asmadai,
+Two potent Thrones, that to be less than Gods
+Disdained, but meaner thoughts learned in their flight,
+Mangled with ghastly wounds through plate and mail.
+Nor stood unmindful Abdiel to annoy
+The atheist crew, but with redoubled blow
+Ariel, and Arioch, and the violence
+Of Ramiel scorched and blasted, overthrew.
+I might relate of thousands, and their names
+Eternize here on earth; but those elect
+Angels, contented with their fame in Heaven,
+Seek not the praise of men: The other sort,
+In might though wonderous and in acts of war,
+Nor of renown less eager, yet by doom
+Cancelled from Heaven and sacred memory,
+Nameless in dark oblivion let them dwell.
+For strength from truth divided, and from just,
+Illaudable, nought merits but dispraise
+And ignominy; yet to glory aspires
+Vain-glorious, and through infamy seeks fame:
+Therefore eternal silence be their doom.
+And now, their mightiest quelled, the battle swerved,
+With many an inroad gored; deformed rout
+Entered, and foul disorder; all the ground
+With shivered armour strown, and on a heap
+Chariot and charioteer lay overturned,
+And fiery-foaming steeds; what stood, recoiled
+O'er-wearied, through the faint Satanick host
+Defensive scarce, or with pale fear surprised,
+Then first with fear surprised, and sense of pain,
+Fled ignominious, to such evil brought
+By sin of disobedience; till that hour
+Not liable to fear, or flight, or pain.
+Far otherwise the inviolable Saints,
+In cubick phalanx firm, advanced entire,
+Invulnerable, impenetrably armed;
+Such high advantages their innocence
+Gave them above their foes; not to have sinned,
+Not to have disobeyed; in fight they stood
+Unwearied, unobnoxious to be pained
+By wound, though from their place by violence moved,
+Now Night her course began, and, over Heaven
+Inducing darkness, grateful truce imposed,
+And silence on the odious din of war:
+Under her cloudy covert both retired,
+Victor and vanquished: On the foughten field
+Michael and his Angels prevalent
+Encamping, placed in guard their watches round,
+Cherubick waving fires: On the other part,
+Satan with his rebellious disappeared,
+Far in the dark dislodged; and, void of rest,
+His potentates to council called by night;
+And in the midst thus undismayed began.
+O now in danger tried, now known in arms
+Not to be overpowered, Companions dear,
+Found worthy not of liberty alone,
+Too mean pretence! but what we more affect,
+Honour, dominion, glory, and renown;
+Who have sustained one day in doubtful fight,
+(And if one day, why not eternal days?)
+What Heaven's Lord had powerfullest to send
+Against us from about his throne, and judged
+Sufficient to subdue us to his will,
+But proves not so: Then fallible, it seems,
+Of future we may deem him, though till now
+Omniscient thought. True is, less firmly armed,
+Some disadvantage we endured and pain,
+Till now not known, but, known, as soon contemned;
+Since now we find this our empyreal form
+Incapable of mortal injury,
+Imperishable, and, though pierced with wound,
+Soon closing, and by native vigour healed.
+Of evil then so small as easy think
+The remedy; perhaps more valid arms,
+Weapons more violent, when next we meet,
+May serve to better us, and worse our foes,
+Or equal what between us made the odds,
+In nature none: If other hidden cause
+Left them superiour, while we can preserve
+Unhurt our minds, and understanding sound,
+Due search and consultation will disclose.
+He sat; and in the assembly next upstood
+Nisroch, of Principalities the prime;
+As one he stood escaped from cruel fight,
+Sore toiled, his riven arms to havock hewn,
+And cloudy in aspect thus answering spake.
+Deliverer from new Lords, leader to free
+Enjoyment of our right as Gods; yet hard
+For Gods, and too unequal work we find,
+Against unequal arms to fight in pain,
+Against unpained, impassive; from which evil
+Ruin must needs ensue; for what avails
+Valour or strength, though matchless, quelled with pain
+Which all subdues, and makes remiss the hands
+Of mightiest? Sense of pleasure we may well
+Spare out of life perhaps, and not repine,
+But live content, which is the calmest life:
+But pain is perfect misery, the worst
+Of evils, and, excessive, overturns
+All patience. He, who therefore can invent
+With what more forcible we may offend
+Our yet unwounded enemies, or arm
+Ourselves with like defence, to me deserves
+No less than for deliverance what we owe.
+Whereto with look composed Satan replied.
+Not uninvented that, which thou aright
+Believest so main to our success, I bring.
+Which of us who beholds the bright surface
+Of this ethereous mould whereon we stand,
+This continent of spacious Heaven, adorned
+With plant, fruit, flower ambrosial, gems, and gold;
+Whose eye so superficially surveys
+These things, as not to mind from whence they grow
+Deep under ground, materials dark and crude,
+Of spiritous and fiery spume, till touched
+With Heaven's ray, and tempered, they shoot forth
+So beauteous, opening to the ambient light?
+These in their dark nativity the deep
+Shall yield us, pregnant with infernal flame;
+Which, into hollow engines, long and round,
+Thick rammed, at the other bore with touch of fire
+Dilated and infuriate, shall send forth
+From far, with thundering noise, among our foes
+Such implements of mischief, as shall dash
+To pieces, and o'erwhelm whatever stands
+Adverse, that they shall fear we have disarmed
+The Thunderer of his only dreaded bolt.
+Nor long shall be our labour; yet ere dawn,
+Effect shall end our wish. Mean while revive;
+Abandon fear; to strength and counsel joined
+Think nothing hard, much less to be despaired.
+He ended, and his words their drooping cheer
+Enlightened, and their languished hope revived.
+The invention all admired, and each, how he
+To be the inventer missed; so easy it seemed
+Once found, which yet unfound most would have thought
+Impossible: Yet, haply, of thy race
+In future days, if malice should abound,
+Some one intent on mischief, or inspired
+With devilish machination, might devise
+Like instrument to plague the sons of men
+For sin, on war and mutual slaughter bent.
+Forthwith from council to the work they flew;
+None arguing stood; innumerable hands
+Were ready; in a moment up they turned
+Wide the celestial soil, and saw beneath
+The originals of nature in their crude
+Conception; sulphurous and nitrous foam
+They found, they mingled, and, with subtle art,
+Concocted and adusted they reduced
+To blackest grain, and into store conveyed:
+Part hidden veins digged up (nor hath this earth
+Entrails unlike) of mineral and stone,
+Whereof to found their engines and their balls
+Of missive ruin; part incentive reed
+Provide, pernicious with one touch to fire.
+So all ere day-spring, under conscious night,
+Secret they finished, and in order set,
+With silent circumspection, unespied.
+Now when fair morn orient in Heaven appeared,
+Up rose the victor-Angels, and to arms
+The matin trumpet sung: In arms they stood
+Of golden panoply, refulgent host,
+Soon banded; others from the dawning hills
+Look round, and scouts each coast light-armed scour,
+Each quarter to descry the distant foe,
+Where lodged, or whither fled, or if for fight,
+In motion or in halt: Him soon they met
+Under spread ensigns moving nigh, in slow
+But firm battalion; back with speediest sail
+Zophiel, of Cherubim the swiftest wing,
+Came flying, and in mid air aloud thus cried.
+Arm, Warriours, arm for fight; the foe at hand,
+Whom fled we thought, will save us long pursuit
+This day; fear not his flight;so thick a cloud
+He comes, and settled in his face I see
+Sad resolution, and secure: Let each
+His adamantine coat gird well, and each
+Fit well his helm, gripe fast his orbed shield,
+Borne even or high; for this day will pour down,
+If I conjecture aught, no drizzling shower,
+But rattling storm of arrows barbed with fire.
+So warned he them, aware themselves, and soon
+In order, quit of all impediment;
+Instant without disturb they took alarm,
+And onward moved embattled: When behold!
+Not distant far with heavy pace the foe
+Approaching gross and huge, in hollow cube
+Training his devilish enginery, impaled
+On every side with shadowing squadrons deep,
+To hide the fraud. At interview both stood
+A while; but suddenly at head appeared
+Satan, and thus was heard commanding loud.
+Vanguard, to right and left the front unfold;
+That all may see who hate us, how we seek
+Peace and composure, and with open breast
+Stand ready to receive them, if they like
+Our overture; and turn not back perverse:
+But that I doubt; however witness, Heaven!
+Heaven, witness thou anon! while we discharge
+Freely our part: ye, who appointed stand
+Do as you have in charge, and briefly touch
+What we propound, and loud that all may hear!
+So scoffing in ambiguous words, he scarce
+Had ended; when to right and left the front
+Divided, and to either flank retired:
+Which to our eyes discovered, new and strange,
+A triple mounted row of pillars laid
+On wheels (for like to pillars most they seemed,
+Or hollowed bodies made of oak or fir,
+With branches lopt, in wood or mountain felled,)
+Brass, iron, stony mould, had not their mouths
+With hideous orifice gaped on us wide,
+Portending hollow truce: At each behind
+A Seraph stood, and in his hand a reed
+Stood waving tipt with fire; while we, suspense,
+Collected stood within our thoughts amused,
+Not long; for sudden all at once their reeds
+Put forth, and to a narrow vent applied
+With nicest touch. Immediate in a flame,
+But soon obscured with smoke, all Heaven appeared,
+From those deep-throated engines belched, whose roar
+Embowelled with outrageous noise the air,
+And all her entrails tore, disgorging foul
+Their devilish glut, chained thunderbolts and hail
+Of iron globes; which, on the victor host
+Levelled, with such impetuous fury smote,
+That, whom they hit, none on their feet might stand,
+Though standing else as rocks, but down they fell
+By thousands, Angel on Arch-Angel rolled;
+The sooner for their arms; unarmed, they might
+Have easily, as Spirits, evaded swift
+By quick contraction or remove; but now
+Foul dissipation followed, and forced rout;
+Nor served it to relax their serried files.
+What should they do? if on they rushed, repulse
+Repeated, and indecent overthrow
+Doubled, would render them yet more despised,
+And to their foes a laughter; for in view
+Stood ranked of Seraphim another row,
+In posture to displode their second tire
+Of thunder: Back defeated to return
+They worse abhorred. Satan beheld their plight,
+And to his mates thus in derision called.
+O Friends! why come not on these victors proud
+Ere while they fierce were coming; and when we,
+To entertain them fair with open front
+And breast, (what could we more?) propounded terms
+Of composition, straight they changed their minds,
+Flew off, and into strange vagaries fell,
+As they would dance; yet for a dance they seemed
+Somewhat extravagant and wild; perhaps
+For joy of offered peace: But I suppose,
+If our proposals once again were heard,
+We should compel them to a quick result.
+To whom thus Belial, in like gamesome mood.
+Leader! the terms we sent were terms of weight,
+Of hard contents, and full of force urged home;
+Such as we might perceive amused them all,
+And stumbled many: Who receives them right,
+Had need from head to foot well understand;
+Not understood, this gift they have besides,
+They show us when our foes walk not upright.
+So they among themselves in pleasant vein
+Stood scoffing, hightened in their thoughts beyond
+All doubt of victory: Eternal Might
+To match with their inventions they presumed
+So easy, and of his thunder made a scorn,
+And all his host derided, while they stood
+A while in trouble: But they stood not long;
+Rage prompted them at length, and found them arms
+Against such hellish mischief fit to oppose.
+Forthwith (behold the excellence, the power,
+Which God hath in his mighty Angels placed!)
+Their arms away they threw, and to the hills
+(For Earth hath this variety from Heaven
+Of pleasure situate in hill and dale,)
+Light as the lightning glimpse they ran, they flew;
+From their foundations loosening to and fro,
+They plucked the seated hills, with all their load,
+Rocks, waters, woods, and by the shaggy tops
+Up-lifting bore them in their hands: Amaze,
+Be sure, and terrour, seized the rebel host,
+When coming towards them so dread they saw
+The bottom of the mountains upward turned;
+Till on those cursed engines' triple-row
+They saw them whelmed, and all their confidence
+Under the weight of mountains buried deep;
+Themselves invaded next, and on their heads
+Main promontories flung, which in the air
+Came shadowing, and oppressed whole legions armed;
+Their armour helped their harm, crushed in and bruised
+Into their substance pent, which wrought them pain
+Implacable, and many a dolorous groan;
+Long struggling underneath, ere they could wind
+Out of such prison, though Spirits of purest light,
+Purest at first, now gross by sinning grown.
+The rest, in imitation, to like arms
+Betook them, and the neighbouring hills uptore:
+So hills amid the air encountered hills,
+Hurled to and fro with jaculation dire;
+That under ground they fought in dismal shade;
+Infernal noise! war seemed a civil game
+To this uproar; horrid confusion heaped
+Upon confusion rose: And now all Heaven
+Had gone to wrack, with ruin overspread;
+Had not the Almighty Father, where he sits
+Shrined in his sanctuary of Heaven secure,
+Consulting on the sum of things, foreseen
+This tumult, and permitted all, advised:
+That his great purpose he might so fulfil,
+To honour his anointed Son avenged
+Upon his enemies, and to declare
+All power on him transferred: Whence to his Son,
+The Assessour of his throne, he thus began.
+Effulgence of my glory, Son beloved,
+Son, in whose face invisible is beheld
+Visibly, what by Deity I am;
+And in whose hand what by decree I do,
+Second Omnipotence! two days are past,
+Two days, as we compute the days of Heaven,
+Since Michael and his Powers went forth to tame
+These disobedient: Sore hath been their fight,
+As likeliest was, when two such foes met armed;
+For to themselves I left them; and thou knowest,
+Equal in their creation they were formed,
+Save what sin hath impaired; which yet hath wrought
+Insensibly, for I suspend their doom;
+Whence in perpetual fight they needs must last
+Endless, and no solution will be found:
+War wearied hath performed what war can do,
+And to disordered rage let loose the reins
+With mountains, as with weapons, armed; which makes
+Wild work in Heaven, and dangerous to the main.
+Two days are therefore past, the third is thine;
+For thee I have ordained it; and thus far
+Have suffered, that the glory may be thine
+Of ending this great war, since none but Thou
+Can end it. Into thee such virtue and grace
+Immense I have transfused, that all may know
+In Heaven and Hell thy power above compare;
+And, this perverse commotion governed thus,
+To manifest thee worthiest to be Heir
+Of all things; to be Heir, and to be King
+By sacred unction, thy deserved right.
+Go then, Thou Mightiest, in thy Father's might;
+Ascend my chariot, guide the rapid wheels
+That shake Heaven's basis, bring forth all my war,
+My bow and thunder, my almighty arms
+Gird on, and sword upon thy puissant thigh;
+Pursue these sons of darkness, drive them out
+From all Heaven's bounds into the utter deep:
+There let them learn, as likes them, to despise
+God, and Messiah his anointed King.
+He said, and on his Son with rays direct
+Shone full; he all his Father full expressed
+Ineffably into his face received;
+And thus the Filial Godhead answering spake.
+O Father, O Supreme of heavenly Thrones,
+First, Highest, Holiest, Best; thou always seek'st
+To glorify thy Son, I always thee,
+As is most just: This I my glory account,
+My exaltation, and my whole delight,
+That thou, in me well pleased, declarest thy will
+Fulfilled, which to fulfil is all my bliss.
+Scepter and power, thy giving, I assume,
+And gladlier shall resign, when in the end
+Thou shalt be all in all, and I in thee
+For ever; and in me all whom thou lovest:
+But whom thou hatest, I hate, and can put on
+Thy terrours, as I put thy mildness on,
+Image of thee in all things; and shall soon,
+Armed with thy might, rid Heaven of these rebelled;
+To their prepared ill mansion driven down,
+To chains of darkness, and the undying worm;
+That from thy just obedience could revolt,
+Whom to obey is happiness entire.
+Then shall thy Saints unmixed, and from the impure
+Far separate, circling thy holy mount,
+Unfeigned Halleluiahs to thee sing,
+Hymns of high praise, and I among them Chief.
+So said, he, o'er his scepter bowing, rose
+From the right hand of Glory where he sat;
+And the third sacred morn began to shine,
+Dawning through Heaven. Forth rushed with whirlwind sound
+The chariot of Paternal Deity,
+Flashing thick flames, wheel within wheel undrawn,
+Itself instinct with Spirit, but convoyed
+By four Cherubick shapes; four faces each
+Had wonderous; as with stars, their bodies all
+And wings were set with eyes; with eyes the wheels
+Of beryl, and careering fires between;
+Over their heads a crystal firmament,
+Whereon a sapphire throne, inlaid with pure
+Amber, and colours of the showery arch.
+He, in celestial panoply all armed
+Of radiant Urim, work divinely wrought,
+Ascended; at his right hand Victory
+Sat eagle-winged; beside him hung his bow
+And quiver with three-bolted thunder stored;
+And from about him fierce effusion rolled
+Of smoke, and bickering flame, and sparkles dire:
+Attended with ten thousand thousand Saints,
+He onward came; far off his coming shone;
+And twenty thousand (I their number heard)
+Chariots of God, half on each hand, were seen;
+He on the wings of Cherub rode sublime
+On the crystalline sky, in sapphire throned,
+Illustrious far and wide; but by his own
+First seen: Them unexpected joy surprised,
+When the great ensign of Messiah blazed
+Aloft by Angels borne, his sign in Heaven;
+Under whose conduct Michael soon reduced
+His army, circumfused on either wing,
+Under their Head imbodied all in one.
+Before him Power Divine his way prepared;
+At his command the uprooted hills retired
+Each to his place; they heard his voice, and went
+Obsequious; Heaven his wonted face renewed,
+And with fresh flowerets hill and valley smiled.
+This saw his hapless foes, but stood obdured,
+And to rebellious fight rallied their Powers,
+Insensate, hope conceiving from despair.
+In heavenly Spirits could such perverseness dwell?
+But to convince the proud what signs avail,
+Or wonders move the obdurate to relent?
+They, hardened more by what might most reclaim,
+Grieving to see his glory, at the sight
+Took envy; and, aspiring to his highth,
+Stood re-embattled fierce, by force or fraud
+Weening to prosper, and at length prevail
+Against God and Messiah, or to fall
+In universal ruin last; and now
+To final battle drew, disdaining flight,
+Or faint retreat; when the great Son of God
+To all his host on either hand thus spake.
+Stand still in bright array, ye Saints; here stand,
+Ye Angels armed; this day from battle rest:
+Faithful hath been your warfare, and of God
+Accepted, fearless in his righteous cause;
+And as ye have received, so have ye done,
+Invincibly: But of this cursed crew
+The punishment to other hand belongs;
+Vengeance is his, or whose he sole appoints:
+Number to this day's work is not ordained,
+Nor multitude; stand only, and behold
+God's indignation on these godless poured
+By me; not you, but me, they have despised,
+Yet envied; against me is all their rage,
+Because the Father, to whom in Heaven s'preme
+Kingdom, and power, and glory appertains,
+Hath honoured me, according to his will.
+Therefore to me their doom he hath assigned;
+That they may have their wish, to try with me
+In battle which the stronger proves; they all,
+Or I alone against them; since by strength
+They measure all, of other excellence
+Not emulous, nor care who them excels;
+Nor other strife with them do I vouchsafe.
+So spake the Son, and into terrour changed
+His countenance too severe to be beheld,
+And full of wrath bent on his enemies.
+At once the Four spread out their starry wings
+With dreadful shade contiguous, and the orbs
+Of his fierce chariot rolled, as with the sound
+Of torrent floods, or of a numerous host.
+He on his impious foes right onward drove,
+Gloomy as night; under his burning wheels
+The stedfast empyrean shook throughout,
+All but the throne itself of God. Full soon
+Among them he arrived; in his right hand
+Grasping ten thousand thunders, which he sent
+Before him, such as in their souls infixed
+Plagues: They, astonished, all resistance lost,
+All courage; down their idle weapons dropt:
+O'er shields, and helms, and helmed heads he rode
+Of Thrones and mighty Seraphim prostrate,
+That wished the mountains now might be again
+Thrown on them, as a shelter from his ire.
+Nor less on either side tempestuous fell
+His arrows, from the fourfold-visaged Four
+Distinct with eyes, and from the living wheels
+Distinct alike with multitude of eyes;
+One Spirit in them ruled; and every eye
+Glared lightning, and shot forth pernicious fire
+Among the accursed, that withered all their strength,
+And of their wonted vigour left them drained,
+Exhausted, spiritless, afflicted, fallen.
+Yet half his strength he put not forth, but checked
+His thunder in mid volley; for he meant
+Not to destroy, but root them out of Heaven:
+The overthrown he raised, and as a herd
+Of goats or timorous flock together thronged
+Drove them before him thunder-struck, pursued
+With terrours, and with furies, to the bounds
+And crystal wall of Heaven; which, opening wide,
+Rolled inward, and a spacious gap disclosed
+Into the wasteful deep: The monstrous sight
+Struck them with horrour backward, but far worse
+Urged them behind: Headlong themselves they threw
+Down from the verge of Heaven; eternal wrath
+Burnt after them to the bottomless pit.
+Hell heard the unsufferable noise, Hell saw
+Heaven ruining from Heaven, and would have fled
+Affrighted; but strict Fate had cast too deep
+Her dark foundations, and too fast had bound.
+Nine days they fell: Confounded Chaos roared,
+And felt tenfold confusion in their fall
+Through his wild anarchy, so huge a rout
+Incumbered him with ruin: Hell at last
+Yawning received them whole, and on them closed;
+Hell, their fit habitation, fraught with fire
+Unquenchable, the house of woe and pain.
+Disburdened Heaven rejoiced, and soon repaired
+Her mural breach, returning whence it rolled.
+Sole victor, from the expulsion of his foes,
+Messiah his triumphal chariot turned:
+To meet him all his Saints, who silent stood
+Eye-witnesses of his almighty acts,
+With jubilee advanced; and, as they went,
+Shaded with branching palm, each Order bright,
+Sung triumph, and him sung victorious King,
+Son, Heir, and Lord, to him dominion given,
+Worthiest to reign: He, celebrated, rode
+Triumphant through mid Heaven, into the courts
+And temple of his Mighty Father throned
+On high; who into glory him received,
+Where now he sits at the right hand of bliss.
+Thus, measuring things in Heaven by things on Earth,
+At thy request, and that thou mayest beware
+By what is past, to thee I have revealed
+What might have else to human race been hid;
+The discord which befel, and war in Heaven
+Among the angelick Powers, and the deep fall
+Of those too high aspiring, who rebelled
+With Satan; he who envies now thy state,
+Who now is plotting how he may seduce
+Thee also from obedience, that, with him
+Bereaved of happiness, thou mayest partake
+His punishment, eternal misery;
+Which would be all his solace and revenge,
+As a despite done against the Most High,
+Thee once to gain companion of his woe.
+But listen not to his temptations, warn
+Thy weaker; let it profit thee to have heard,
+By terrible example, the reward
+Of disobedience; firm they might have stood,
+Yet fell; remember, and fear to transgress.
+
+
+
+Book VII
+
+
+Descend from Heaven, Urania, by that name
+If rightly thou art called, whose voice divine
+Following, above the Olympian hill I soar,
+Above the flight of Pegasean wing!
+The meaning, not the name, I call: for thou
+Nor of the Muses nine, nor on the top
+Of old Olympus dwellest; but, heavenly-born,
+Before the hills appeared, or fountain flowed,
+Thou with eternal Wisdom didst converse,
+Wisdom thy sister, and with her didst play
+In presence of the Almighty Father, pleased
+With thy celestial song. Up led by thee
+Into the Heaven of Heavens I have presumed,
+An earthly guest, and drawn empyreal air,
+Thy tempering: with like safety guided down
+Return me to my native element:
+Lest from this flying steed unreined, (as once
+Bellerophon, though from a lower clime,)
+Dismounted, on the Aleian field I fall,
+Erroneous there to wander, and forlorn.
+Half yet remains unsung, but narrower bound
+Within the visible diurnal sphere;
+Standing on earth, not rapt above the pole,
+More safe I sing with mortal voice, unchanged
+To hoarse or mute, though fallen on evil days,
+On evil days though fallen, and evil tongues;
+In darkness, and with dangers compassed round,
+And solitude; yet not alone, while thou
+Visitest my slumbers nightly, or when morn
+Purples the east: still govern thou my song,
+Urania, and fit audience find, though few.
+But drive far off the barbarous dissonance
+Of Bacchus and his revellers, the race
+Of that wild rout that tore the Thracian bard
+In Rhodope, where woods and rocks had ears
+To rapture, till the savage clamour drowned
+Both harp and voice; nor could the Muse defend
+Her son. So fail not thou, who thee implores:
+For thou art heavenly, she an empty dream.
+Say, Goddess, what ensued when Raphael,
+The affable Arch-Angel, had forewarned
+Adam, by dire example, to beware
+Apostasy, by what befel in Heaven
+To those apostates; lest the like befall
+In Paradise to Adam or his race,
+Charged not to touch the interdicted tree,
+If they transgress, and slight that sole command,
+So easily obeyed amid the choice
+Of all tastes else to please their appetite,
+Though wandering. He, with his consorted Eve,
+The story heard attentive, and was filled
+With admiration and deep muse, to hear
+Of things so high and strange; things, to their thought
+So unimaginable, as hate in Heaven,
+And war so near the peace of God in bliss,
+With such confusion: but the evil, soon
+Driven back, redounded as a flood on those
+From whom it sprung; impossible to mix
+With blessedness. Whence Adam soon repealed
+The doubts that in his heart arose: and now
+Led on, yet sinless, with desire to know
+What nearer might concern him, how this world
+Of Heaven and Earth conspicuous first began;
+When, and whereof created; for what cause;
+What within Eden, or without, was done
+Before his memory; as one whose drouth
+Yet scarce allayed still eyes the current stream,
+Whose liquid murmur heard new thirst excites,
+Proceeded thus to ask his heavenly guest.
+Great things, and full of wonder in our ears,
+Far differing from this world, thou hast revealed,
+Divine interpreter! by favour sent
+Down from the empyrean, to forewarn
+Us timely of what might else have been our loss,
+Unknown, which human knowledge could not reach;
+For which to the infinitely Good we owe
+Immortal thanks, and his admonishment
+Receive, with solemn purpose to observe
+Immutably his sovran will, the end
+Of what we are. But since thou hast vouchsafed
+Gently, for our instruction, to impart
+Things above earthly thought, which yet concerned
+Our knowing, as to highest wisdom seemed,
+Deign to descend now lower, and relate
+What may no less perhaps avail us known,
+How first began this Heaven which we behold
+Distant so high, with moving fires adorned
+Innumerable; and this which yields or fills
+All space, the ambient air wide interfused
+Embracing round this floried Earth; what cause
+Moved the Creator, in his holy rest
+Through all eternity, so late to build
+In Chaos; and the work begun, how soon
+Absolved; if unforbid thou mayest unfold
+What we, not to explore the secrets ask
+Of his eternal empire, but the more
+To magnify his works, the more we know.
+And the great light of day yet wants to run
+Much of his race though steep; suspense in Heaven,
+Held by thy voice, thy potent voice, he hears,
+And longer will delay to hear thee tell
+His generation, and the rising birth
+Of Nature from the unapparent Deep:
+Or if the star of evening and the moon
+Haste to thy audience, Night with her will bring,
+Silence; and Sleep, listening to thee, will watch;
+Or we can bid his absence, till thy song
+End, and dismiss thee ere the morning shine.
+Thus Adam his illustrious guest besought:
+And thus the Godlike Angel answered mild.
+This also thy request, with caution asked,
+Obtain; though to recount almighty works
+What words or tongue of Seraph can suffice,
+Or heart of man suffice to comprehend?
+Yet what thou canst attain, which best may serve
+To glorify the Maker, and infer
+Thee also happier, shall not be withheld
+Thy hearing; such commission from above
+I have received, to answer thy desire
+Of knowledge within bounds; beyond, abstain
+To ask; nor let thine own inventions hope
+Things not revealed, which the invisible King,
+Only Omniscient, hath suppressed in night;
+To none communicable in Earth or Heaven:
+Enough is left besides to search and know.
+But knowledge is as food, and needs no less
+Her temperance over appetite, to know
+In measure what the mind may well contain;
+Oppresses else with surfeit, and soon turns
+Wisdom to folly, as nourishment to wind.
+Know then, that, after Lucifer from Heaven
+(So call him, brighter once amidst the host
+Of Angels, than that star the stars among,)
+Fell with his flaming legions through the deep
+Into his place, and the great Son returned
+Victorious with his Saints, the Omnipotent
+Eternal Father from his throne beheld
+Their multitude, and to his Son thus spake.
+At least our envious Foe hath failed, who thought
+All like himself rebellious, by whose aid
+This inaccessible high strength, the seat
+Of Deity supreme, us dispossessed,
+He trusted to have seised, and into fraud
+Drew many, whom their place knows here no more:
+Yet far the greater part have kept, I see,
+Their station; Heaven, yet populous, retains
+Number sufficient to possess her realms
+Though wide, and this high temple to frequent
+With ministeries due, and solemn rites:
+But, lest his heart exalt him in the harm
+Already done, to have dispeopled Heaven,
+My damage fondly deemed, I can repair
+That detriment, if such it be to lose
+Self-lost; and in a moment will create
+Another world, out of one man a race
+Of men innumerable, there to dwell,
+Not here; till, by degrees of merit raised,
+They open to themselves at length the way
+Up hither, under long obedience tried;
+And Earth be changed to Heaven, and Heaven to Earth,
+One kingdom, joy and union without end.
+Mean while inhabit lax, ye Powers of Heaven;
+And thou my Word, begotten Son, by thee
+This I perform; speak thou, and be it done!
+My overshadowing Spirit and Might with thee
+I send along; ride forth, and bid the Deep
+Within appointed bounds be Heaven and Earth;
+Boundless the Deep, because I Am who fill
+Infinitude, nor vacuous the space.
+Though I, uncircumscribed myself, retire,
+And put not forth my goodness, which is free
+To act or not, Necessity and Chance
+Approach not me, and what I will is Fate.
+So spake the Almighty, and to what he spake
+His Word, the Filial Godhead, gave effect.
+Immediate are the acts of God, more swift
+Than time or motion, but to human ears
+Cannot without process of speech be told,
+So told as earthly notion can receive.
+Great triumph and rejoicing was in Heaven,
+When such was heard declared the Almighty's will;
+Glory they sung to the Most High, good will
+To future men, and in their dwellings peace;
+Glory to Him, whose just avenging ire
+Had driven out the ungodly from his sight
+And the habitations of the just; to Him
+Glory and praise, whose wisdom had ordained
+Good out of evil to create; instead
+Of Spirits malign, a better race to bring
+Into their vacant room, and thence diffuse
+His good to worlds and ages infinite.
+So sang the Hierarchies: Mean while the Son
+On his great expedition now appeared,
+Girt with Omnipotence, with radiance crowned
+Of Majesty Divine; sapience and love
+Immense, and all his Father in him shone.
+About his chariot numberless were poured
+Cherub, and Seraph, Potentates, and Thrones,
+And Virtues, winged Spirits, and chariots winged
+From the armoury of God; where stand of old
+Myriads, between two brazen mountains lodged
+Against a solemn day, harnessed at hand,
+Celestial equipage; and now came forth
+Spontaneous, for within them Spirit lived,
+Attendant on their Lord: Heaven opened wide
+Her ever-during gates, harmonious sound
+On golden hinges moving, to let forth
+The King of Glory, in his powerful Word
+And Spirit, coming to create new worlds.
+On heavenly ground they stood; and from the shore
+They viewed the vast immeasurable abyss
+Outrageous as a sea, dark, wasteful, wild,
+Up from the bottom turned by furious winds
+And surging waves, as mountains, to assault
+Heaven's highth, and with the center mix the pole.
+Silence, ye troubled Waves, and thou Deep, peace,
+Said then the Omnifick Word; your discord end!
+Nor staid; but, on the wings of Cherubim
+Uplifted, in paternal glory rode
+Far into Chaos, and the world unborn;
+For Chaos heard his voice: Him all his train
+Followed in bright procession, to behold
+Creation, and the wonders of his might.
+Then staid the fervid wheels, and in his hand
+He took the golden compasses, prepared
+In God's eternal store, to circumscribe
+This universe, and all created things:
+One foot he centered, and the other turned
+Round through the vast profundity obscure;
+And said, Thus far extend, thus far thy bounds,
+This be thy just circumference, O World!
+Thus God the Heaven created, thus the Earth,
+Matter unformed and void: Darkness profound
+Covered the abyss: but on the watery calm
+His brooding wings the Spirit of God outspread,
+And vital virtue infused, and vital warmth
+Throughout the fluid mass; but downward purged
+The black tartareous cold infernal dregs,
+Adverse to life: then founded, then conglobed
+Like things to like; the rest to several place
+Disparted, and between spun out the air;
+And Earth self-balanced on her center hung.
+Let there be light, said God; and forthwith Light
+Ethereal, first of things, quintessence pure,
+Sprung from the deep; and from her native east
+To journey through the aery gloom began,
+Sphered in a radiant cloud, for yet the sun
+Was not; she in a cloudy tabernacle
+Sojourned the while. God saw the light was good;
+And light from darkness by the hemisphere
+Divided: light the Day, and darkness Night,
+He named. Thus was the first day even and morn:
+Nor past uncelebrated, nor unsung
+By the celestial quires, when orient light
+Exhaling first from darkness they beheld;
+Birth-day of Heaven and Earth; with joy and shout
+The hollow universal orb they filled,
+And touched their golden harps, and hymning praised
+God and his works; Creator him they sung,
+Both when first evening was, and when first morn.
+Again, God said, Let there be firmament
+Amid the waters, and let it divide
+The waters from the waters; and God made
+The firmament, expanse of liquid, pure,
+Transparent, elemental air, diffused
+In circuit to the uttermost convex
+Of this great round; partition firm and sure,
+The waters underneath from those above
+Dividing: for as earth, so he the world
+Built on circumfluous waters calm, in wide
+Crystalline ocean, and the loud misrule
+Of Chaos far removed; lest fierce extremes
+Contiguous might distemper the whole frame:
+And Heaven he named the Firmament: So even
+And morning chorus sung the second day.
+The Earth was formed, but in the womb as yet
+Of waters, embryon immature involved,
+Appeared not: over all the face of Earth
+Main ocean flowed, not idle; but, with warm
+Prolifick humour softening all her globe,
+Fermented the great mother to conceive,
+Satiate with genial moisture; when God said,
+Be gathered now ye waters under Heaven
+Into one place, and let dry land appear.
+Immediately the mountains huge appear
+Emergent, and their broad bare backs upheave
+Into the clouds; their tops ascend the sky:
+So high as heaved the tumid hills, so low
+Down sunk a hollow bottom broad and deep,
+Capacious bed of waters: Thither they
+Hasted with glad precipitance, uprolled,
+As drops on dust conglobing from the dry:
+Part rise in crystal wall, or ridge direct,
+For haste; such flight the great command impressed
+On the swift floods: As armies at the call
+Of trumpet (for of armies thou hast heard)
+Troop to their standard; so the watery throng,
+Wave rolling after wave, where way they found,
+If steep, with torrent rapture, if through plain,
+Soft-ebbing; nor withstood them rock or hill;
+But they, or under ground, or circuit wide
+With serpent errour wandering, found their way,
+And on the washy oose deep channels wore;
+Easy, ere God had bid the ground be dry,
+All but within those banks, where rivers now
+Stream, and perpetual draw their humid train.
+The dry land, Earth; and the great receptacle
+Of congregated waters, he called Seas:
+And saw that it was good; and said, Let the Earth
+Put forth the verdant grass, herb yielding seed,
+And fruit-tree yielding fruit after her kind,
+Whose seed is in herself upon the Earth.
+He scarce had said, when the bare Earth, till then
+Desart and bare, unsightly, unadorned,
+Brought forth the tender grass, whose verdure clad
+Her universal face with pleasant green;
+Then herbs of every leaf, that sudden flowered
+Opening their various colours, and made gay
+Her bosom, smelling sweet: and, these scarce blown,
+Forth flourished thick the clustering vine, forth crept
+The swelling gourd, up stood the corny reed
+Embattled in her field, and the humble shrub,
+And bush with frizzled hair implicit: Last
+Rose, as in dance, the stately trees, and spread
+Their branches hung with copious fruit, or gemmed
+Their blossoms: With high woods the hills were crowned;
+With tufts the valleys, and each fountain side;
+With borders long the rivers: that Earth now
+Seemed like to Heaven, a seat where Gods might dwell,
+Or wander with delight, and love to haunt
+Her sacred shades: though God had yet not rained
+Upon the Earth, and man to till the ground
+None was; but from the Earth a dewy mist
+Went up, and watered all the ground, and each
+Plant of the field; which, ere it was in the Earth,
+God made, and every herb, before it grew
+On the green stem: God saw that it was good:
+So even and morn recorded the third day.
+Again the Almighty spake, Let there be lights
+High in the expanse of Heaven, to divide
+The day from night; and let them be for signs,
+For seasons, and for days, and circling years;
+And let them be for lights, as I ordain
+Their office in the firmament of Heaven,
+To give light on the Earth; and it was so.
+And God made two great lights, great for their use
+To Man, the greater to have rule by day,
+The less by night, altern; and made the stars,
+And set them in the firmament of Heaven
+To illuminate the Earth, and rule the day
+In their vicissitude, and rule the night,
+And light from darkness to divide. God saw,
+Surveying his great work, that it was good:
+For of celestial bodies first the sun
+A mighty sphere he framed, unlightsome first,
+Though of ethereal mould: then formed the moon
+Globose, and every magnitude of stars,
+And sowed with stars the Heaven, thick as a field:
+Of light by far the greater part he took,
+Transplanted from her cloudy shrine, and placed
+In the sun's orb, made porous to receive
+And drink the liquid light; firm to retain
+Her gathered beams, great palace now of light.
+Hither, as to their fountain, other stars
+Repairing, in their golden urns draw light,
+And hence the morning-planet gilds her horns;
+By tincture or reflection they augment
+Their small peculiar, though from human sight
+So far remote, with diminution seen,
+First in his east the glorious lamp was seen,
+Regent of day, and all the horizon round
+Invested with bright rays, jocund to run
+His longitude through Heaven's high road; the gray
+Dawn, and the Pleiades, before him danced,
+Shedding sweet influence: Less bright the moon,
+But opposite in levelled west was set,
+His mirrour, with full face borrowing her light
+From him; for other light she needed none
+In that aspect, and still that distance keeps
+Till night; then in the east her turn she shines,
+Revolved on Heaven's great axle, and her reign
+With thousand lesser lights dividual holds,
+With thousand thousand stars, that then appeared
+Spangling the hemisphere: Then first adorned
+With their bright luminaries that set and rose,
+Glad evening and glad morn crowned the fourth day.
+And God said, Let the waters generate
+Reptile with spawn abundant, living soul:
+And let fowl fly above the Earth, with wings
+Displayed on the open firmament of Heaven.
+And God created the great whales, and each
+Soul living, each that crept, which plenteously
+The waters generated by their kinds;
+And every bird of wing after his kind;
+And saw that it was good, and blessed them, saying.
+Be fruitful, multiply, and in the seas,
+And lakes, and running streams, the waters fill;
+And let the fowl be multiplied, on the Earth.
+Forthwith the sounds and seas, each creek and bay,
+With fry innumerable swarm, and shoals
+Of fish that with their fins, and shining scales,
+Glide under the green wave, in sculls that oft
+Bank the mid sea: part single, or with mate,
+Graze the sea-weed their pasture, and through groves
+Of coral stray; or, sporting with quick glance,
+Show to the sun their waved coats dropt with gold;
+Or, in their pearly shells at ease, attend
+Moist nutriment; or under rocks their food
+In jointed armour watch: on smooth the seal
+And bended dolphins play: part huge of bulk
+Wallowing unwieldy, enormous in their gait,
+Tempest the ocean: there leviathan,
+Hugest of living creatures, on the deep
+Stretched like a promontory sleeps or swims,
+And seems a moving land; and at his gills
+Draws in, and at his trunk spouts out, a sea.
+Mean while the tepid caves, and fens, and shores,
+Their brood as numerous hatch, from the egg that soon
+Bursting with kindly rupture forth disclosed
+Their callow young; but feathered soon and fledge
+They summed their pens; and, soaring the air sublime,
+With clang despised the ground, under a cloud
+In prospect; there the eagle and the stork
+On cliffs and cedar tops their eyries build:
+Part loosely wing the region, part more wise
+In common, ranged in figure, wedge their way,
+Intelligent of seasons, and set forth
+Their aery caravan, high over seas
+Flying, and over lands, with mutual wing
+Easing their flight; so steers the prudent crane
+Her annual voyage, borne on winds; the air
+Floats as they pass, fanned with unnumbered plumes:
+From branch to branch the smaller birds with song
+Solaced the woods, and spread their painted wings
+Till even; nor then the solemn nightingale
+Ceased warbling, but all night tun'd her soft lays:
+Others, on silver lakes and rivers, bathed
+Their downy breast; the swan with arched neck,
+Between her white wings mantling proudly, rows
+Her state with oary feet; yet oft they quit
+The dank, and, rising on stiff pennons, tower
+The mid aereal sky: Others on ground
+Walked firm; the crested cock whose clarion sounds
+The silent hours, and the other whose gay train
+Adorns him, coloured with the florid hue
+Of rainbows and starry eyes. The waters thus
+With fish replenished, and the air with fowl,
+Evening and morn solemnized the fifth day.
+The sixth, and of creation last, arose
+With evening harps and matin; when God said,
+Let the Earth bring forth soul living in her kind,
+Cattle, and creeping things, and beast of the Earth,
+Each in their kind. The Earth obeyed, and straight
+Opening her fertile womb teemed at a birth
+Innumerous living creatures, perfect forms,
+Limbed and full grown: Out of the ground up rose,
+As from his lair, the wild beast where he wons
+In forest wild, in thicket, brake, or den;
+Among the trees in pairs they rose, they walked:
+The cattle in the fields and meadows green:
+Those rare and solitary, these in flocks
+Pasturing at once, and in broad herds upsprung.
+The grassy clods now calved; now half appeared
+The tawny lion, pawing to get free
+His hinder parts, then springs as broke from bonds,
+And rampant shakes his brinded mane; the ounce,
+The libbard, and the tiger, as the mole
+Rising, the crumbled earth above them threw
+In hillocks: The swift stag from under ground
+Bore up his branching head: Scarce from his mould
+Behemoth biggest born of earth upheaved
+His vastness: Fleeced the flocks and bleating rose,
+As plants: Ambiguous between sea and land
+The river-horse, and scaly crocodile.
+At once came forth whatever creeps the ground,
+Insect or worm: those waved their limber fans
+For wings, and smallest lineaments exact
+In all the liveries decked of summer's pride
+With spots of gold and purple, azure and green:
+These, as a line, their long dimension drew,
+Streaking the ground with sinuous trace; not all
+Minims of nature; some of serpent-kind,
+Wonderous in length and corpulence, involved
+Their snaky folds, and added wings. First crept
+The parsimonious emmet, provident
+Of future; in small room large heart enclosed;
+Pattern of just equality perhaps
+Hereafter, joined in her popular tribes
+Of commonalty: Swarming next appeared
+The female bee, that feeds her husband drone
+Deliciously, and builds her waxen cells
+With honey stored: The rest are numberless,
+And thou their natures knowest, and gavest them names,
+Needless to thee repeated; nor unknown
+The serpent, subtlest beast of all the field,
+Of huge extent sometimes, with brazen eyes
+And hairy mane terrifick, though to thee
+Not noxious, but obedient at thy call.
+Now Heaven in all her glory shone, and rolled
+Her motions, as the great first Mover's hand
+First wheeled their course: Earth in her rich attire
+Consummate lovely smiled; air, water, earth,
+By fowl, fish, beast, was flown, was swum, was walked,
+Frequent; and of the sixth day yet remained:
+There wanted yet the master-work, the end
+Of all yet done; a creature, who, not prone
+And brute as other creatures, but endued
+With sanctity of reason, might erect
+His stature, and upright with front serene
+Govern the rest, self-knowing; and from thence
+Magnanimous to correspond with Heaven,
+But grateful to acknowledge whence his good
+Descends, thither with heart, and voice, and eyes
+Directed in devotion, to adore
+And worship God Supreme, who made him chief
+Of all his works: therefore the Omnipotent
+Eternal Father (for where is not he
+Present?) thus to his Son audibly spake.
+Let us make now Man in our image, Man
+In our similitude, and let them rule
+Over the fish and fowl of sea and air,
+Beast of the field, and over all the Earth,
+And every creeping thing that creeps the ground.
+This said, he formed thee, Adam, thee, O Man,
+Dust of the ground, and in thy nostrils breathed
+The breath of life; in his own image he
+Created thee, in the image of God
+Express; and thou becamest a living soul.
+Male he created thee; but thy consort
+Female, for race; then blessed mankind, and said,
+Be fruitful, multiply, and fill the Earth;
+Subdue it, and throughout dominion hold
+Over fish of the sea, and fowl of the air,
+And every living thing that moves on the Earth.
+Wherever thus created, for no place
+Is yet distinct by name, thence, as thou knowest,
+He brought thee into this delicious grove,
+This garden, planted with the trees of God,
+Delectable both to behold and taste;
+And freely all their pleasant fruit for food
+Gave thee; all sorts are here that all the Earth yields,
+Variety without end; but of the tree,
+Which, tasted, works knowledge of good and evil,
+Thou mayest not; in the day thou eatest, thou diest;
+Death is the penalty imposed; beware,
+And govern well thy appetite; lest Sin
+Surprise thee, and her black attendant Death.
+Here finished he, and all that he had made
+Viewed, and behold all was entirely good;
+So even and morn accomplished the sixth day:
+Yet not till the Creator from his work
+Desisting, though unwearied, up returned,
+Up to the Heaven of Heavens, his high abode;
+Thence to behold this new created world,
+The addition of his empire, how it showed
+In prospect from his throne, how good, how fair,
+Answering his great idea. Up he rode
+Followed with acclamation, and the sound
+Symphonious of ten thousand harps, that tuned
+Angelick harmonies: The earth, the air
+Resounded, (thou rememberest, for thou heardst,)
+The heavens and all the constellations rung,
+The planets in their station listening stood,
+While the bright pomp ascended jubilant.
+Open, ye everlasting gates! they sung,
+Open, ye Heavens! your living doors;let in
+The great Creator from his work returned
+Magnificent, his six days work, a World;
+Open, and henceforth oft; for God will deign
+To visit oft the dwellings of just men,
+Delighted; and with frequent intercourse
+Thither will send his winged messengers
+On errands of supernal grace. So sung
+The glorious train ascending: He through Heaven,
+That opened wide her blazing portals, led
+To God's eternal house direct the way;
+A broad and ample road, whose dust is gold
+And pavement stars, as stars to thee appear,
+Seen in the galaxy, that milky way,
+Which nightly, as a circling zone, thou seest
+Powdered with stars. And now on Earth the seventh
+Evening arose in Eden, for the sun
+Was set, and twilight from the east came on,
+Forerunning night; when at the holy mount
+Of Heaven's high-seated top, the imperial throne
+Of Godhead, fixed for ever firm and sure,
+The Filial Power arrived, and sat him down
+With his great Father; for he also went
+Invisible, yet staid, (such privilege
+Hath Omnipresence) and the work ordained,
+Author and End of all things; and, from work
+Now resting, blessed and hallowed the seventh day,
+As resting on that day from all his work,
+But not in silence holy kept: the harp
+Had work and rested not; the solemn pipe,
+And dulcimer, all organs of sweet stop,
+All sounds on fret by string or golden wire,
+Tempered soft tunings, intermixed with voice
+Choral or unison: of incense clouds,
+Fuming from golden censers, hid the mount.
+Creation and the six days acts they sung:
+Great are thy works, Jehovah! infinite
+Thy power! what thought can measure thee, or tongue
+Relate thee! Greater now in thy return
+Than from the giant Angels: Thee that day
+Thy thunders magnified; but to create
+Is greater than created to destroy.
+Who can impair thee, Mighty King, or bound
+Thy empire! Easily the proud attempt
+Of Spirits apostate, and their counsels vain,
+Thou hast repelled; while impiously they thought
+Thee to diminish, and from thee withdraw
+The number of thy worshippers. Who seeks
+To lessen thee, against his purpose serves
+To manifest the more thy might: his evil
+Thou usest, and from thence createst more good.
+Witness this new-made world, another Heaven
+From Heaven-gate not far, founded in view
+On the clear hyaline, the glassy sea;
+Of amplitude almost immense, with stars
+Numerous, and every star perhaps a world
+Of destined habitation; but thou knowest
+Their seasons: among these the seat of Men,
+Earth, with her nether ocean circumfused,
+Their pleasant dwelling-place. Thrice happy Men,
+And sons of Men, whom God hath thus advanced!
+Created in his image, there to dwell
+And worship him; and in reward to rule
+Over his works, on earth, in sea, or air,
+And multiply a race of worshippers
+Holy and just: Thrice happy, if they know
+Their happiness, and persevere upright!
+So sung they, and the empyrean rung
+With halleluiahs: Thus was sabbath kept.
+And thy request think now fulfilled, that asked
+How first this world and face of things began,
+And what before thy memory was done
+From the beginning; that posterity,
+Informed by thee, might know: If else thou seekest
+Aught, not surpassing human measure, say.
+
+
+
+Book VIII
+
+
+The Angel ended, and in Adam's ear
+So charming left his voice, that he a while
+Thought him still speaking, still stood fixed to hear;
+Then, as new waked, thus gratefully replied.
+What thanks sufficient, or what recompence
+Equal, have I to render thee, divine
+Historian, who thus largely hast allayed
+The thirst I had of knowledge, and vouchsafed
+This friendly condescension to relate
+Things, else by me unsearchable; now heard
+With wonder, but delight, and, as is due,
+With glory attributed to the high
+Creator! Something yet of doubt remains,
+Which only thy solution can resolve.
+When I behold this goodly frame, this world,
+Of Heaven and Earth consisting; and compute
+Their magnitudes; this Earth, a spot, a grain,
+An atom, with the firmament compared
+And all her numbered stars, that seem to roll
+Spaces incomprehensible, (for such
+Their distance argues, and their swift return
+Diurnal,) merely to officiate light
+Round this opacous Earth, this punctual spot,
+One day and night; in all her vast survey
+Useless besides; reasoning I oft admire,
+How Nature wise and frugal could commit
+Such disproportions, with superfluous hand
+So many nobler bodies to create,
+Greater so manifold, to this one use,
+For aught appears, and on their orbs impose
+Such restless revolution day by day
+Repeated; while the sedentary Earth,
+That better might with far less compass move,
+Served by more noble than herself, attains
+Her end without least motion, and receives,
+As tribute, such a sumless journey brought
+Of incorporeal speed, her warmth and light;
+Speed, to describe whose swiftness number fails.
+So spake our sire, and by his countenance seemed
+Entering on studious thoughts abstruse; which Eve
+Perceiving, where she sat retired in sight,
+With lowliness majestick from her seat,
+And grace that won who saw to wish her stay,
+Rose, and went forth among her fruits and flowers,
+To visit how they prospered, bud and bloom,
+Her nursery; they at her coming sprung,
+And, touched by her fair tendance, gladlier grew.
+Yet went she not, as not with such discourse
+Delighted, or not capable her ear
+Of what was high: such pleasure she reserved,
+Adam relating, she sole auditress;
+Her husband the relater she preferred
+Before the Angel, and of him to ask
+Chose rather; he, she knew, would intermix
+Grateful digressions, and solve high dispute
+With conjugal caresses: from his lip
+Not words alone pleased her. O! when meet now
+Such pairs, in love and mutual honour joined?
+With Goddess-like demeanour forth she went,
+Not unattended; for on her, as Queen,
+A pomp of winning Graces waited still,
+And from about her shot darts of desire
+Into all eyes, to wish her still in sight.
+And Raphael now, to Adam's doubt proposed,
+Benevolent and facile thus replied.
+To ask or search, I blame thee not; for Heaven
+Is as the book of God before thee set,
+Wherein to read his wonderous works, and learn
+His seasons, hours, or days, or months, or years:
+This to attain, whether Heaven move or Earth,
+Imports not, if thou reckon right; the rest
+From Man or Angel the great Architect
+Did wisely to conceal, and not divulge
+His secrets to be scanned by them who ought
+Rather admire; or, if they list to try
+Conjecture, he his fabrick of the Heavens
+Hath left to their disputes, perhaps to move
+His laughter at their quaint opinions wide
+Hereafter; when they come to model Heaven
+And calculate the stars, how they will wield
+The mighty frame; how build, unbuild, contrive
+To save appearances; how gird the sphere
+With centrick and eccentrick scribbled o'er,
+Cycle and epicycle, orb in orb:
+Already by thy reasoning this I guess,
+Who art to lead thy offspring, and supposest
+That bodies bright and greater should not serve
+The less not bright, nor Heaven such journeys run,
+Earth sitting still, when she alone receives
+The benefit: Consider first, that great
+Or bright infers not excellence: the Earth
+Though, in comparison of Heaven, so small,
+Nor glistering, may of solid good contain
+More plenty than the sun that barren shines;
+Whose virtue on itself works no effect,
+But in the fruitful Earth; there first received,
+His beams, unactive else, their vigour find.
+Yet not to Earth are those bright luminaries
+Officious; but to thee, Earth's habitant.
+And for the Heaven's wide circuit, let it speak
+The Maker's high magnificence, who built
+So spacious, and his line stretched out so far;
+That Man may know he dwells not in his own;
+An edifice too large for him to fill,
+Lodged in a small partition; and the rest
+Ordained for uses to his Lord best known.
+The swiftness of those circles attribute,
+Though numberless, to his Omnipotence,
+That to corporeal substances could add
+Speed almost spiritual: Me thou thinkest not slow,
+Who since the morning-hour set out from Heaven
+Where God resides, and ere mid-day arrived
+In Eden; distance inexpressible
+By numbers that have name. But this I urge,
+Admitting motion in the Heavens, to show
+Invalid that which thee to doubt it moved;
+Not that I so affirm, though so it seem
+To thee who hast thy dwelling here on Earth.
+God, to remove his ways from human sense,
+Placed Heaven from Earth so far, that earthly sight,
+If it presume, might err in things too high,
+And no advantage gain. What if the sun
+Be center to the world; and other stars,
+By his attractive virtue and their own
+Incited, dance about him various rounds?
+Their wandering course now high, now low, then hid,
+Progressive, retrograde, or standing still,
+In six thou seest; and what if seventh to these
+The planet earth, so stedfast though she seem,
+Insensibly three different motions move?
+Which else to several spheres thou must ascribe,
+Moved contrary with thwart obliquities;
+Or save the sun his labour, and that swift
+Nocturnal and diurnal rhomb supposed,
+Invisible else above all stars, the wheel
+Of day and night; which needs not thy belief,
+If earth, industrious of herself, fetch day
+Travelling east, and with her part averse
+From the sun's beam meet night, her other part
+Still luminous by his ray. What if that light,
+Sent from her through the wide transpicuous air,
+To the terrestrial moon be as a star,
+Enlightening her by day, as she by night
+This earth? reciprocal, if land be there,
+Fields and inhabitants: Her spots thou seest
+As clouds, and clouds may rain, and rain produce
+Fruits in her softened soil for some to eat
+Allotted there; and other suns perhaps,
+With their attendant moons, thou wilt descry,
+Communicating male and female light;
+Which two great sexes animate the world,
+Stored in each orb perhaps with some that live.
+For such vast room in Nature unpossessed
+By living soul, desart and desolate,
+Only to shine, yet scarce to contribute
+Each orb a glimpse of light, conveyed so far
+Down to this habitable, which returns
+Light back to them, is obvious to dispute.
+But whether thus these things, or whether not;
+But whether the sun, predominant in Heaven,
+Rise on the earth; or earth rise on the sun;
+He from the east his flaming road begin;
+Or she from west her silent course advance,
+With inoffensive pace that spinning sleeps
+On her soft axle, while she paces even,
+And bears thee soft with the smooth hair along;
+Sollicit not thy thoughts with matters hid;
+Leave them to God above; him serve, and fear!
+Of other creatures, as him pleases best,
+Wherever placed, let him dispose; joy thou
+In what he gives to thee, this Paradise
+And thy fair Eve; Heaven is for thee too high
+To know what passes there; be lowly wise:
+Think only what concerns thee, and thy being;
+Dream not of other worlds, what creatures there
+Live, in what state, condition, or degree;
+Contented that thus far hath been revealed
+Not of Earth only, but of highest Heaven.
+To whom thus Adam, cleared of doubt, replied.
+How fully hast thou satisfied me, pure
+Intelligence of Heaven, Angel serene!
+And, freed from intricacies, taught to live
+The easiest way; nor with perplexing thoughts
+To interrupt the sweet of life, from which
+God hath bid dwell far off all anxious cares,
+And not molest us; unless we ourselves
+Seek them with wandering thoughts, and notions vain.
+But apt the mind or fancy is to rove
+Unchecked, and of her roving is no end;
+Till warned, or by experience taught, she learn,
+That, not to know at large of things remote
+From use, obscure and subtle; but, to know
+That which before us lies in daily life,
+Is the prime wisdom: What is more, is fume,
+Or emptiness, or fond impertinence:
+And renders us, in things that most concern,
+Unpractised, unprepared, and still to seek.
+Therefore from this high pitch let us descend
+A lower flight, and speak of things at hand
+Useful; whence, haply, mention may arise
+Of something not unseasonable to ask,
+By sufferance, and thy wonted favour, deigned.
+Thee I have heard relating what was done
+Ere my remembrance: now, hear me relate
+My story, which perhaps thou hast not heard;
+And day is not yet spent; till then thou seest
+How subtly to detain thee I devise;
+Inviting thee to hear while I relate;
+Fond! were it not in hope of thy reply:
+For, while I sit with thee, I seem in Heaven;
+And sweeter thy discourse is to my ear
+Than fruits of palm-tree pleasantest to thirst
+And hunger both, from labour, at the hour
+Of sweet repast; they satiate, and soon fill,
+Though pleasant; but thy words, with grace divine
+Imbued, bring to their sweetness no satiety.
+To whom thus Raphael answered heavenly meek.
+Nor are thy lips ungraceful, Sire of men,
+Nor tongue ineloquent; for God on thee
+Abundantly his gifts hath also poured
+Inward and outward both, his image fair:
+Speaking, or mute, all comeliness and grace
+Attends thee; and each word, each motion, forms;
+Nor less think we in Heaven of thee on Earth
+Than of our fellow-servant, and inquire
+Gladly into the ways of God with Man:
+For God, we see, hath honoured thee, and set
+On Man his equal love: Say therefore on;
+For I that day was absent, as befel,
+Bound on a voyage uncouth and obscure,
+Far on excursion toward the gates of Hell;
+Squared in full legion (such command we had)
+To see that none thence issued forth a spy,
+Or enemy, while God was in his work;
+Lest he, incensed at such eruption bold,
+Destruction with creation might have mixed.
+Not that they durst without his leave attempt;
+But us he sends upon his high behests
+For state, as Sovran King; and to inure
+Our prompt obedience. Fast we found, fast shut,
+The dismal gates, and barricadoed strong;
+But long ere our approaching heard within
+Noise, other than the sound of dance or song,
+Torment, and loud lament, and furious rage.
+Glad we returned up to the coasts of light
+Ere sabbath-evening: so we had in charge.
+But thy relation now; for I attend,
+Pleased with thy words no less than thou with mine.
+So spake the Godlike Power, and thus our Sire.
+For Man to tell how human life began
+Is hard; for who himself beginning knew
+Desire with thee still longer to converse
+Induced me. As new waked from soundest sleep,
+Soft on the flowery herb I found me laid,
+In balmy sweat; which with his beams the sun
+Soon dried, and on the reeking moisture fed.
+Straight toward Heaven my wondering eyes I turned,
+And gazed a while the ample sky; till, raised
+By quick instinctive motion, up I sprung,
+As thitherward endeavouring, and upright
+Stood on my feet: about me round I saw
+Hill, dale, and shady woods, and sunny plains,
+And liquid lapse of murmuring streams; by these,
+Creatures that lived and moved, and walked, or flew;
+Birds on the branches warbling; all things smiled;
+With fragrance and with joy my heart o'erflowed.
+Myself I then perused, and limb by limb
+Surveyed, and sometimes went, and sometimes ran
+With supple joints, as lively vigour led:
+But who I was, or where, or from what cause,
+Knew not; to speak I tried, and forthwith spake;
+My tongue obeyed, and readily could name
+Whate'er I saw. Thou Sun, said I, fair light,
+And thou enlightened Earth, so fresh and gay,
+Ye Hills, and Dales, ye Rivers, Woods, and Plains,
+And ye that live and move, fair Creatures, tell,
+Tell, if ye saw, how I came thus, how here?--
+Not of myself;--by some great Maker then,
+In goodness and in power pre-eminent:
+Tell me, how may I know him, how adore,
+From whom I have that thus I move and live,
+And feel that I am happier than I know.--
+While thus I called, and strayed I knew not whither,
+From where I first drew air, and first beheld
+This happy light; when, answer none returned,
+On a green shady bank, profuse of flowers,
+Pensive I sat me down: There gentle sleep
+First found me, and with soft oppression seised
+My droused sense, untroubled, though I thought
+I then was passing to my former state
+Insensible, and forthwith to dissolve:
+When suddenly stood at my head a dream,
+Whose inward apparition gently moved
+My fancy to believe I yet had being,
+And lived: One came, methought, of shape divine,
+And said, 'Thy mansion wants thee, Adam; rise,
+'First Man, of men innumerable ordained
+'First Father! called by thee, I come thy guide
+'To the garden of bliss, thy seat prepared.'
+So saying, by the hand he took me raised,
+And over fields and waters, as in air
+Smooth-sliding without step, last led me up
+A woody mountain; whose high top was plain,
+A circuit wide, enclosed, with goodliest trees
+Planted, with walks, and bowers; that what I saw
+Of Earth before scarce pleasant seemed. Each tree,
+Loaden with fairest fruit that hung to the eye
+Tempting, stirred in me sudden appetite
+To pluck and eat; whereat I waked, and found
+Before mine eyes all real, as the dream
+Had lively shadowed: Here had new begun
+My wandering, had not he, who was my guide
+Up hither, from among the trees appeared,
+Presence Divine. Rejoicing, but with awe,
+In adoration at his feet I fell
+Submiss: He reared me, and 'Whom thou soughtest I am,'
+Said mildly, 'Author of all this thou seest
+'Above, or round about thee, or beneath.
+'This Paradise I give thee, count it thine
+'To till and keep, and of the fruit to eat:
+'Of every tree that in the garden grows
+'Eat freely with glad heart; fear here no dearth:
+'But of the tree whose operation brings
+'Knowledge of good and ill, which I have set
+'The pledge of thy obedience and thy faith,
+'Amid the garden by the tree of life,
+'Remember what I warn thee, shun to taste,
+'And shun the bitter consequence: for know,
+'The day thou eatest thereof, my sole command
+'Transgressed, inevitably thou shalt die,
+'From that day mortal; and this happy state
+'Shalt lose, expelled from hence into a world
+'Of woe and sorrow.' Sternly he pronounced
+The rigid interdiction, which resounds
+Yet dreadful in mine ear, though in my choice
+Not to incur; but soon his clear aspect
+Returned, and gracious purpose thus renewed.
+'Not only these fair bounds, but all the Earth
+'To thee and to thy race I give; as lords
+'Possess it, and all things that therein live,
+'Or live in sea, or air; beast, fish, and fowl.
+'In sign whereof, each bird and beast behold
+'After their kinds; I bring them to receive
+'From thee their names, and pay thee fealty
+'With low subjection; understand the same
+'Of fish within their watery residence,
+'Not hither summoned, since they cannot change
+'Their element, to draw the thinner air.'
+As thus he spake, each bird and beast behold
+Approaching two and two; these cowering low
+With blandishment; each bird stooped on his wing.
+I named them, as they passed, and understood
+Their nature, with such knowledge God endued
+My sudden apprehension: But in these
+I found not what methought I wanted still;
+And to the heavenly Vision thus presumed.
+O, by what name, for thou above all these,
+Above mankind, or aught than mankind higher,
+Surpassest far my naming; how may I
+Adore thee, Author of this universe,
+And all this good to man? for whose well being
+So amply, and with hands so liberal,
+Thou hast provided all things: But with me
+I see not who partakes. In solitude
+What happiness, who can enjoy alone,
+Or, all enjoying, what contentment find?
+Thus I presumptuous; and the Vision bright,
+As with a smile more brightened, thus replied.
+What callest thou solitude? Is not the Earth
+With various living creatures, and the air
+Replenished, and all these at thy command
+To come and play before thee? Knowest thou not
+Their language and their ways? They also know,
+And reason not contemptibly: With these
+Find pastime, and bear rule; thy realm is large.
+So spake the Universal Lord, and seemed
+So ordering: I, with leave of speech implored,
+And humble deprecation, thus replied.
+Let not my words offend thee, Heavenly Power;
+My Maker, be propitious while I speak.
+Hast thou not made me here thy substitute,
+And these inferiour far beneath me set?
+Among unequals what society
+Can sort, what harmony, or true delight?
+Which must be mutual, in proportion due
+Given and received; but, in disparity
+The one intense, the other still remiss,
+Cannot well suit with either, but soon prove
+Tedious alike: Of fellowship I speak
+Such as I seek, fit to participate
+All rational delight: wherein the brute
+Cannot be human consort: They rejoice
+Each with their kind, lion with lioness;
+So fitly them in pairs thou hast combined:
+Much less can bird with beast, or fish with fowl
+So well converse, nor with the ox the ape;
+Worse then can man with beast, and least of all.
+Whereto the Almighty answered, not displeased.
+A nice and subtle happiness, I see,
+Thou to thyself proposest, in the choice
+Of thy associates, Adam! and wilt taste
+No pleasure, though in pleasure, solitary.
+What thinkest thou then of me, and this my state?
+Seem I to thee sufficiently possessed
+Of happiness, or not? who am alone
+From all eternity; for none I know
+Second to me or like, equal much less.
+How have I then with whom to hold converse,
+Save with the creatures which I made, and those
+To me inferiour, infinite descents
+Beneath what other creatures are to thee?
+He ceased; I lowly answered. To attain
+The highth and depth of thy eternal ways
+All human thoughts come short, Supreme of things!
+Thou in thyself art perfect, and in thee
+Is no deficience found: Not so is Man,
+But in degree; the cause of his desire
+By conversation with his like to help
+Or solace his defects. No need that thou
+Shouldst propagate, already Infinite;
+And through all numbers absolute, though One:
+But Man by number is to manifest
+His single imperfection, and beget
+Like of his like, his image multiplied,
+In unity defective; which requires
+Collateral love, and dearest amity.
+Thou in thy secresy although alone,
+Best with thyself accompanied, seekest not
+Social communication; yet, so pleased,
+Canst raise thy creature to what highth thou wilt
+Of union or communion, deified:
+I, by conversing, cannot these erect
+From prone; nor in their ways complacence find.
+Thus I emboldened spake, and freedom used
+Permissive, and acceptance found; which gained
+This answer from the gracious Voice Divine.
+Thus far to try thee, Adam, I was pleased;
+And find thee knowing, not of beasts alone,
+Which thou hast rightly named, but of thyself;
+Expressing well the spirit within thee free,
+My image, not imparted to the brute;
+Whose fellowship therefore unmeet for thee
+Good reason was thou freely shouldst dislike;
+And be so minded still: I, ere thou spakest,
+Knew it not good for Man to be alone;
+And no such company as then thou sawest
+Intended thee; for trial only brought,
+To see how thou couldest judge of fit and meet:
+What next I bring shall please thee, be assured,
+Thy likeness, thy fit help, thy other self,
+Thy wish exactly to thy heart's desire.
+He ended, or I heard no more; for now
+My earthly by his heavenly overpowered,
+Which it had long stood under, strained to the highth
+In that celestial colloquy sublime,
+As with an object that excels the sense
+Dazzled and spent, sunk down; and sought repair
+Of sleep, which instantly fell on me, called
+By Nature as in aid, and closed mine eyes.
+Mine eyes he closed, but open left the cell
+Of fancy, my internal sight; by which,
+Abstract as in a trance, methought I saw,
+Though sleeping, where I lay, and saw the shape
+Still glorious before whom awake I stood:
+Who stooping opened my left side, and took
+From thence a rib, with cordial spirits warm,
+And life-blood streaming fresh; wide was the wound,
+But suddenly with flesh filled up and healed:
+The rib he formed and fashioned with his hands;
+Under his forming hands a creature grew,
+Man-like, but different sex; so lovely fair,
+That what seemed fair in all the world, seemed now
+Mean, or in her summed up, in her contained
+And in her looks; which from that time infused
+Sweetness into my heart, unfelt before,
+And into all things from her air inspired
+The spirit of love and amorous delight.
+She disappeared, and left me dark; I waked
+To find her, or for ever to deplore
+Her loss, and other pleasures all abjure:
+When out of hope, behold her, not far off,
+Such as I saw her in my dream, adorned
+With what all Earth or Heaven could bestow
+To make her amiable: On she came,
+Led by her heavenly Maker, though unseen,
+And guided by his voice; nor uninformed
+Of nuptial sanctity, and marriage rites:
+Grace was in all her steps, Heaven in her eye,
+In every gesture dignity and love.
+I, overjoyed, could not forbear aloud.
+This turn hath made amends; thou hast fulfilled
+Thy words, Creator bounteous and benign,
+Giver of all things fair! but fairest this
+Of all thy gifts! nor enviest. I now see
+Bone of my bone, flesh of my flesh, myself
+Before me: Woman is her name;of Man
+Extracted: for this cause he shall forego
+Father and mother, and to his wife adhere;
+And they shall be one flesh, one heart, one soul.
+She heard me thus; and though divinely brought,
+Yet innocence, and virgin modesty,
+Her virtue, and the conscience of her worth,
+That would be wooed, and not unsought be won,
+Not obvious, not obtrusive, but, retired,
+The more desirable; or, to say all,
+Nature herself, though pure of sinful thought,
+Wrought in her so, that, seeing me, she turned:
+I followed her; she what was honour knew,
+And with obsequious majesty approved
+My pleaded reason. To the nuptial bower
+I led her blushing like the morn: All Heaven,
+And happy constellations, on that hour
+Shed their selectest influence; the Earth
+Gave sign of gratulation, and each hill;
+Joyous the birds; fresh gales and gentle airs
+Whispered it to the woods, and from their wings
+Flung rose, flung odours from the spicy shrub,
+Disporting, till the amorous bird of night
+Sung spousal, and bid haste the evening-star
+On his hill top, to light the bridal lamp.
+Thus have I told thee all my state, and brought
+My story to the sum of earthly bliss,
+Which I enjoy; and must confess to find
+In all things else delight indeed, but such
+As, used or not, works in the mind no change,
+Nor vehement desire; these delicacies
+I mean of taste, sight, smell, herbs, fruits, and flowers,
+Walks, and the melody of birds: but here
+Far otherwise, transported I behold,
+Transported touch; here passion first I felt,
+Commotion strange! in all enjoyments else
+Superiour and unmoved; here only weak
+Against the charm of Beauty's powerful glance.
+Or Nature failed in me, and left some part
+Not proof enough such object to sustain;
+Or, from my side subducting, took perhaps
+More than enough; at least on her bestowed
+Too much of ornament, in outward show
+Elaborate, of inward less exact.
+For well I understand in the prime end
+Of Nature her the inferiour, in the mind
+And inward faculties, which most excel;
+In outward also her resembling less
+His image who made both, and less expressing
+The character of that dominion given
+O'er other creatures: Yet when I approach
+Her loveliness, so absolute she seems
+And in herself complete, so well to know
+Her own, that what she wills to do or say,
+Seems wisest, virtuousest, discreetest, best:
+All higher knowledge in her presence falls
+Degraded; Wisdom in discourse with her
+Loses discountenanced, and like Folly shows;
+Authority and Reason on her wait,
+As one intended first, not after made
+Occasionally; and, to consummate all,
+Greatness of mind and Nobleness their seat
+Build in her loveliest, and create an awe
+About her, as a guard angelick placed.
+To whom the Angel with contracted brow.
+Accuse not Nature, she hath done her part;
+Do thou but thine; and be not diffident
+Of Wisdom; she deserts thee not, if thou
+Dismiss not her, when most thou needest her nigh,
+By attributing overmuch to things
+Less excellent, as thou thyself perceivest.
+For, what admirest thou, what transports thee so,
+An outside? fair, no doubt, and worthy well
+Thy cherishing, thy honouring, and thy love;
+Not thy subjection: Weigh with her thyself;
+Then value: Oft-times nothing profits more
+Than self-esteem, grounded on just and right
+Well managed; of that skill the more thou knowest,
+The more she will acknowledge thee her head,
+And to realities yield all her shows:
+Made so adorn for thy delight the more,
+So awful, that with honour thou mayest love
+Thy mate, who sees when thou art seen least wise.
+But if the sense of touch, whereby mankind
+Is propagated, seem such dear delight
+Beyond all other; think the same vouchsafed
+To cattle and each beast; which would not be
+To them made common and divulged, if aught
+Therein enjoyed were worthy to subdue
+The soul of man, or passion in him move.
+What higher in her society thou findest
+Attractive, human, rational, love still;
+In loving thou dost well, in passion not,
+Wherein true love consists not: Love refines
+The thoughts, and heart enlarges; hath his seat
+In reason, and is judicious; is the scale
+By which to heavenly love thou mayest ascend,
+Not sunk in carnal pleasure; for which cause,
+Among the beasts no mate for thee was found.
+To whom thus, half abashed, Adam replied.
+Neither her outside formed so fair, nor aught
+In procreation common to all kinds,
+(Though higher of the genial bed by far,
+And with mysterious reverence I deem,)
+So much delights me, as those graceful acts,
+Those thousand decencies, that daily flow
+From all her words and actions mixed with love
+And sweet compliance, which declare unfeigned
+Union of mind, or in us both one soul;
+Harmony to behold in wedded pair
+More grateful than harmonious sound to the ear.
+Yet these subject not; I to thee disclose
+What inward thence I feel, not therefore foiled,
+Who meet with various objects, from the sense
+Variously representing; yet, still free,
+Approve the best, and follow what I approve.
+To love, thou blamest me not; for Love, thou sayest,
+Leads up to Heaven, is both the way and guide;
+Bear with me then, if lawful what I ask:
+Love not the heavenly Spirits, and how their love
+Express they? by looks only? or do they mix
+Irradiance, virtual or immediate touch?
+To whom the Angel, with a smile that glowed
+Celestial rosy red, Love's proper hue,
+Answered. Let it suffice thee that thou knowest
+Us happy, and without love no happiness.
+Whatever pure thou in the body enjoyest,
+(And pure thou wert created) we enjoy
+In eminence; and obstacle find none
+Of membrane, joint, or limb, exclusive bars;
+Easier than air with air, if Spirits embrace,
+Total they mix, union of pure with pure
+Desiring, nor restrained conveyance need,
+As flesh to mix with flesh, or soul with soul.
+But I can now no more; the parting sun
+Beyond the Earth's green Cape and verdant Isles
+Hesperian sets, my signal to depart.
+Be strong, live happy, and love! But, first of all,
+Him, whom to love is to obey, and keep
+His great command; take heed lest passion sway
+Thy judgement to do aught, which else free will
+Would not admit: thine, and of all thy sons,
+The weal or woe in thee is placed; beware!
+I in thy persevering shall rejoice,
+And all the Blest: Stand fast;to stand or fall
+Free in thine own arbitrement it lies.
+Perfect within, no outward aid require;
+And all temptation to transgress repel.
+So saying, he arose; whom Adam thus
+Followed with benediction. Since to part,
+Go, heavenly guest, ethereal Messenger,
+Sent from whose sovran goodness I adore!
+Gentle to me and affable hath been
+Thy condescension, and shall be honoured ever
+With grateful memory: Thou to mankind
+Be good and friendly still, and oft return!
+So parted they; the Angel up to Heaven
+From the thick shade, and Adam to his bower.
+
+
+
+Book IX
+
+
+No more of talk where God or Angel guest
+With Man, as with his friend, familiar us'd,
+To sit indulgent, and with him partake
+Rural repast; permitting him the while
+Venial discourse unblam'd. I now must change
+Those notes to tragick; foul distrust, and breach
+Disloyal on the part of Man, revolt,
+And disobedience: on the part of Heaven
+Now alienated, distance and distaste,
+Anger and just rebuke, and judgement given,
+That brought into this world a world of woe,
+Sin and her shadow Death, and Misery
+Death's harbinger: Sad talk!yet argument
+Not less but more heroick than the wrath
+Of stern Achilles on his foe pursued
+Thrice fugitive about Troy wall; or rage
+Of Turnus for Lavinia disespous'd;
+Or Neptune's ire, or Juno's, that so long
+Perplexed the Greek, and Cytherea's son:
+
+ 00482129
+If answerable style I can obtain
+Of my celestial patroness, who deigns
+Her nightly visitation unimplor'd,
+And dictates to me slumbering; or inspires
+Easy my unpremeditated verse:
+Since first this subject for heroick song
+Pleas'd me long choosing, and beginning late;
+Not sedulous by nature to indite
+Wars, hitherto the only argument
+Heroick deem'd chief mastery to dissect
+With long and tedious havock fabled knights
+In battles feign'd; the better fortitude
+Of patience and heroick martyrdom
+Unsung; or to describe races and games,
+Or tilting furniture, imblazon'd shields,
+Impresses quaint, caparisons and steeds,
+Bases and tinsel trappings, gorgeous knights
+At joust and tournament; then marshall'd feast
+Serv'd up in hall with sewers and seneshals;
+The skill of artifice or office mean,
+Not that which justly gives heroick name
+To person, or to poem. Me, of these
+Nor skill'd nor studious, higher argument
+Remains; sufficient of itself to raise
+That name, unless an age too late, or cold
+Climate, or years, damp my intended wing
+Depress'd; and much they may, if all be mine,
+Not hers, who brings it nightly to my ear.
+The sun was sunk, and after him the star
+Of Hesperus, whose office is to bring
+Twilight upon the earth, short arbiter
+"twixt day and night, and now from end to end
+Night's hemisphere had veil'd the horizon round:
+When satan, who late fled before the threats
+Of Gabriel out of Eden, now improv'd
+In meditated fraud and malice, bent
+On Man's destruction, maugre what might hap
+Of heavier on himself, fearless returned
+From compassing the earth; cautious of day,
+Since Uriel, regent of the sun, descried
+His entrance, and foreworned the Cherubim
+That kept their watch; thence full of anguish driven,
+The space of seven continued nights he rode
+With darkness; thrice the equinoctial line
+He circled; four times crossed the car of night
+From pole to pole, traversing each colure;
+On the eighth returned; and, on the coast averse
+From entrance or Cherubick watch, by stealth
+Found unsuspected way. There was a place,
+Now not, though sin, not time, first wrought the change,
+Where Tigris, at the foot of Paradise,
+Into a gulf shot under ground, till part
+Rose up a fountain by the tree of life:
+In with the river sunk, and with it rose
+Satan, involved in rising mist; then sought
+Where to lie hid; sea he had searched, and land,
+From Eden over Pontus and the pool
+Maeotis, up beyond the river Ob;
+Downward as far antarctick; and in length,
+West from Orontes to the ocean barred
+At Darien ; thence to the land where flows
+Ganges and Indus: Thus the orb he roamed
+With narrow search; and with inspection deep
+Considered every creature, which of all
+Most opportune might serve his wiles; and found
+The Serpent subtlest beast of all the field.
+Him after long debate, irresolute
+Of thoughts revolved, his final sentence chose
+Fit vessel, fittest imp of fraud, in whom
+To enter, and his dark suggestions hide
+From sharpest sight: for, in the wily snake
+Whatever sleights, none would suspicious mark,
+As from his wit and native subtlety
+Proceeding; which, in other beasts observed,
+Doubt might beget of diabolick power
+Active within, beyond the sense of brute.
+Thus he resolved, but first from inward grief
+His bursting passion into plaints thus poured.
+More justly, seat worthier of Gods, as built
+With second thoughts, reforming what was old!
+O Earth, how like to Heaven, if not preferred
+For what God, after better, worse would build?
+Terrestrial Heaven, danced round by other Heavens
+That shine, yet bear their bright officious lamps,
+Light above light, for thee alone, as seems,
+In thee concentring all their precious beams
+Of sacred influence! As God in Heaven
+Is center, yet extends to all; so thou,
+Centring, receivest from all those orbs: in thee,
+Not in themselves, all their known virtue appears
+Productive in herb, plant, and nobler birth
+Of creatures animate with gradual life
+Of growth, sense, reason, all summed up in Man.
+With what delight could I have walked thee round,
+If I could joy in aught, sweet interchange
+Of hill, and valley, rivers, woods, and plains,
+Now land, now sea and shores with forest crowned,
+Rocks, dens, and caves! But I in none of these
+Find place or refuge; and the more I see
+Pleasures about me, so much more I feel
+Torment within me, as from the hateful siege
+Of contraries: all good to me becomes
+Bane, and in Heaven much worse would be my state.
+But neither here seek I, no nor in Heaven
+To dwell, unless by mastering Heaven's Supreme;
+Nor hope to be myself less miserable
+By what I seek, but others to make such
+As I, though thereby worse to me redound:
+For only in destroying I find ease
+To my relentless thoughts; and, him destroyed,
+Or won to what may work his utter loss,
+For whom all this was made, all this will soon
+Follow, as to him linked in weal or woe;
+In woe then; that destruction wide may range:
+To me shall be the glory sole among
+The infernal Powers, in one day to have marred
+What he, Almighty styled, six nights and days
+Continued making; and who knows how long
+Before had been contriving? though perhaps
+Not longer than since I, in one night, freed
+From servitude inglorious well nigh half
+The angelick name, and thinner left the throng
+Of his adorers: He, to be avenged,
+And to repair his numbers thus impaired,
+Whether such virtue spent of old now failed
+More Angels to create, if they at least
+Are his created, or, to spite us more,
+Determined to advance into our room
+A creature formed of earth, and him endow,
+Exalted from so base original,
+With heavenly spoils, our spoils: What he decreed,
+He effected; Man he made, and for him built
+Magnificent this world, and earth his seat,
+Him lord pronounced; and, O indignity!
+Subjected to his service angel-wings,
+And flaming ministers to watch and tend
+Their earthly charge: Of these the vigilance
+I dread; and, to elude, thus wrapt in mist
+Of midnight vapour glide obscure, and pry
+In every bush and brake, where hap may find
+The serpent sleeping; in whose mazy folds
+To hide me, and the dark intent I bring.
+O foul descent! that I, who erst contended
+With Gods to sit the highest, am now constrained
+Into a beast; and, mixed with bestial slime,
+This essence to incarnate and imbrute,
+That to the highth of Deity aspired!
+But what will not ambition and revenge
+Descend to? Who aspires, must down as low
+As high he soared; obnoxious, first or last,
+To basest things. Revenge, at first though sweet,
+Bitter ere long, back on itself recoils:
+Let it; I reck not, so it light well aimed,
+Since higher I fall short, on him who next
+Provokes my envy, this new favourite
+Of Heaven, this man of clay, son of despite,
+Whom, us the more to spite, his Maker raised
+From dust: Spite then with spite is best repaid.
+So saying, through each thicket dank or dry,
+Like a black mist low-creeping, he held on
+His midnight-search, where soonest he might find
+The serpent; him fast-sleeping soon he found
+In labyrinth of many a round self-rolled,
+His head the midst, well stored with subtile wiles:
+Not yet in horrid shade or dismal den,
+Nor nocent yet; but, on the grassy herb,
+Fearless unfeared he slept: in at his mouth
+The Devil entered; and his brutal sense,
+In heart or head, possessing, soon inspired
+With act intelligential; but his sleep
+Disturbed not, waiting close the approach of morn.
+Now, when as sacred light began to dawn
+In Eden on the humid flowers, that breathed
+Their morning incense, when all things, that breathe,
+From the Earth's great altar send up silent praise
+To the Creator, and his nostrils fill
+With grateful smell, forth came the human pair,
+And joined their vocal worship to the quire
+Of creatures wanting voice; that done, partake
+The season prime for sweetest scents and airs:
+Then commune, how that day they best may ply
+Their growing work: for much their work out-grew
+The hands' dispatch of two gardening so wide,
+And Eve first to her husband thus began.
+Adam, well may we labour still to dress
+This garden, still to tend plant, herb, and flower,
+Our pleasant task enjoined; but, till more hands
+Aid us, the work under our labour grows,
+Luxurious by restraint; what we by day
+Lop overgrown, or prune, or prop, or bind,
+One night or two with wanton growth derides
+Tending to wild. Thou therefore now advise,
+Or bear what to my mind first thoughts present:
+Let us divide our labours; thou, where choice
+Leads thee, or where most needs, whether to wind
+The woodbine round this arbour, or direct
+The clasping ivy where to climb; while I,
+In yonder spring of roses intermixed
+With myrtle, find what to redress till noon:
+For, while so near each other thus all day
+Our task we choose, what wonder if so near
+Looks intervene and smiles, or object new
+Casual discourse draw on; which intermits
+Our day's work, brought to little, though begun
+Early, and the hour of supper comes unearned?
+To whom mild answer Adam thus returned.
+Sole Eve, associate sole, to me beyond
+Compare above all living creatures dear!
+Well hast thou motioned, well thy thoughts employed,
+How we might best fulfil the work which here
+God hath assigned us; nor of me shalt pass
+Unpraised: for nothing lovelier can be found
+In woman, than to study houshold good,
+And good works in her husband to promote.
+Yet not so strictly hath our Lord imposed
+Labour, as to debar us when we need
+Refreshment, whether food, or talk between,
+Food of the mind, or this sweet intercourse
+Of looks and smiles; for smiles from reason flow,
+To brute denied, and are of love the food;
+Love, not the lowest end of human life.
+For not to irksome toil, but to delight,
+He made us, and delight to reason joined.
+These paths and bowers doubt not but our joint hands
+Will keep from wilderness with ease, as wide
+As we need walk, till younger hands ere long
+Assist us; But, if much converse perhaps
+Thee satiate, to short absence I could yield:
+For solitude sometimes is best society,
+And short retirement urges sweet return.
+But other doubt possesses me, lest harm
+Befall thee severed from me; for thou knowest
+What hath been warned us, what malicious foe
+Envying our happiness, and of his own
+Despairing, seeks to work us woe and shame
+By sly assault; and somewhere nigh at hand
+Watches, no doubt, with greedy hope to find
+His wish and best advantage, us asunder;
+Hopeless to circumvent us joined, where each
+To other speedy aid might lend at need:
+Whether his first design be to withdraw
+Our fealty from God, or to disturb
+Conjugal love, than which perhaps no bliss
+Enjoyed by us excites his envy more;
+Or this, or worse, leave not the faithful side
+That gave thee being, still shades thee, and protects.
+The wife, where danger or dishonour lurks,
+Safest and seemliest by her husband stays,
+Who guards her, or with her the worst endures.
+To whom the virgin majesty of Eve,
+As one who loves, and some unkindness meets,
+With sweet austere composure thus replied.
+Offspring of Heaven and Earth, and all Earth's Lord!
+That such an enemy we have, who seeks
+Our ruin, both by thee informed I learn,
+And from the parting Angel over-heard,
+As in a shady nook I stood behind,
+Just then returned at shut of evening flowers.
+But, that thou shouldst my firmness therefore doubt
+To God or thee, because we have a foe
+May tempt it, I expected not to hear.
+His violence thou fearest not, being such
+As we, not capable of death or pain,
+Can either not receive, or can repel.
+His fraud is then thy fear; which plain infers
+Thy equal fear, that my firm faith and love
+Can by his fraud be shaken or seduced;
+Thoughts, which how found they harbour in thy breast,
+Adam, mis-thought of her to thee so dear?
+To whom with healing words Adam replied.
+Daughter of God and Man, immortal Eve!
+For such thou art; from sin and blame entire:
+Not diffident of thee do I dissuade
+Thy absence from my sight, but to avoid
+The attempt itself, intended by our foe.
+For he who tempts, though in vain, at least asperses
+The tempted with dishonour foul; supposed
+Not incorruptible of faith, not proof
+Against temptation: Thou thyself with scorn
+And anger wouldst resent the offered wrong,
+Though ineffectual found: misdeem not then,
+If such affront I labour to avert
+From thee alone, which on us both at once
+The enemy, though bold, will hardly dare;
+Or daring, first on me the assault shall light.
+Nor thou his malice and false guile contemn;
+Subtle he needs must be, who could seduce
+Angels; nor think superfluous other's aid.
+I, from the influence of thy looks, receive
+Access in every virtue; in thy sight
+More wise, more watchful, stronger, if need were
+Of outward strength; while shame, thou looking on,
+Shame to be overcome or over-reached,
+Would utmost vigour raise, and raised unite.
+Why shouldst not thou like sense within thee feel
+When I am present, and thy trial choose
+With me, best witness of thy virtue tried?
+So spake domestick Adam in his care
+And matrimonial love; but Eve, who thought
+Less attributed to her faith sincere,
+Thus her reply with accent sweet renewed.
+If this be our condition, thus to dwell
+In narrow circuit straitened by a foe,
+Subtle or violent, we not endued
+Single with like defence, wherever met;
+How are we happy, still in fear of harm?
+But harm precedes not sin: only our foe,
+Tempting, affronts us with his foul esteem
+Of our integrity: his foul esteem
+Sticks no dishonour on our front, but turns
+Foul on himself; then wherefore shunned or feared
+By us? who rather double honour gain
+From his surmise proved false; find peace within,
+Favour from Heaven, our witness, from the event.
+And what is faith, love, virtue, unassayed
+Alone, without exteriour help sustained?
+Let us not then suspect our happy state
+Left so imperfect by the Maker wise,
+As not secure to single or combined.
+Frail is our happiness, if this be so,
+And Eden were no Eden, thus exposed.
+To whom thus Adam fervently replied.
+O Woman, best are all things as the will
+Of God ordained them: His creating hand
+Nothing imperfect or deficient left
+Of all that he created, much less Man,
+Or aught that might his happy state secure,
+Secure from outward force; within himself
+The danger lies, yet lies within his power:
+Against his will he can receive no harm.
+But God left free the will; for what obeys
+Reason, is free; and Reason he made right,
+But bid her well be ware, and still erect;
+Lest, by some fair-appearing good surprised,
+She dictate false; and mis-inform the will
+To do what God expressly hath forbid.
+Not then mistrust, but tender love, enjoins,
+That I should mind thee oft; and mind thou me.
+Firm we subsist, yet possible to swerve;
+Since Reason not impossibly may meet
+Some specious object by the foe suborned,
+And fall into deception unaware,
+Not keeping strictest watch, as she was warned.
+Seek not temptation then, which to avoid
+Were better, and most likely if from me
+Thou sever not: Trial will come unsought.
+Wouldst thou approve thy constancy, approve
+First thy obedience; the other who can know,
+Not seeing thee attempted, who attest?
+But, if thou think, trial unsought may find
+Us both securer than thus warned thou seemest,
+Go; for thy stay, not free, absents thee more;
+Go in thy native innocence, rely
+On what thou hast of virtue; summon all!
+For God towards thee hath done his part, do thine.
+So spake the patriarch of mankind; but Eve
+Persisted; yet submiss, though last, replied.
+With thy permission then, and thus forewarned
+Chiefly by what thy own last reasoning words
+Touched only; that our trial, when least sought,
+May find us both perhaps far less prepared,
+The willinger I go, nor much expect
+A foe so proud will first the weaker seek;
+So bent, the more shall shame him his repulse.
+Thus saying, from her husband's hand her hand
+Soft she withdrew; and, like a Wood-Nymph light,
+Oread or Dryad, or of Delia's train,
+Betook her to the groves; but Delia's self
+In gait surpassed, and Goddess-like deport,
+Though not as she with bow and quiver armed,
+But with such gardening tools as Art yet rude,
+Guiltless of fire, had formed, or Angels brought.
+To Pales, or Pomona, thus adorned,
+Likest she seemed, Pomona when she fled
+Vertumnus, or to Ceres in her prime,
+Yet virgin of Proserpina from Jove.
+Her long with ardent look his eye pursued
+Delighted, but desiring more her stay.
+Oft he to her his charge of quick return
+Repeated; she to him as oft engaged
+To be returned by noon amid the bower,
+And all things in best order to invite
+Noontide repast, or afternoon's repose.
+O much deceived, much failing, hapless Eve,
+Of thy presumed return! event perverse!
+Thou never from that hour in Paradise
+Foundst either sweet repast, or sound repose;
+Such ambush, hid among sweet flowers and shades,
+Waited with hellish rancour imminent
+To intercept thy way, or send thee back
+Despoiled of innocence, of faith, of bliss!
+For now, and since first break of dawn, the Fiend,
+Mere serpent in appearance, forth was come;
+And on his quest, where likeliest he might find
+The only two of mankind, but in them
+The whole included race, his purposed prey.
+In bower and field he sought, where any tuft
+Of grove or garden-plot more pleasant lay,
+Their tendance, or plantation for delight;
+By fountain or by shady rivulet
+He sought them both, but wished his hap might find
+Eve separate; he wished, but not with hope
+Of what so seldom chanced; when to his wish,
+Beyond his hope, Eve separate he spies,
+Veiled in a cloud of fragrance, where she stood,
+Half spied, so thick the roses blushing round
+About her glowed, oft stooping to support
+Each flower of slender stalk, whose head, though gay
+Carnation, purple, azure, or specked with gold,
+Hung drooping unsustained; them she upstays
+Gently with myrtle band, mindless the while
+Herself, though fairest unsupported flower,
+From her best prop so far, and storm so nigh.
+Nearer he drew, and many a walk traversed
+Of stateliest covert, cedar, pine, or palm;
+Then voluble and bold, now hid, now seen,
+Among thick-woven arborets, and flowers
+Imbordered on each bank, the hand of Eve:
+Spot more delicious than those gardens feigned
+Or of revived Adonis, or renowned
+Alcinous, host of old Laertes' son;
+Or that, not mystick, where the sapient king
+Held dalliance with his fair Egyptian spouse.
+Much he the place admired, the person more.
+As one who long in populous city pent,
+Where houses thick and sewers annoy the air,
+Forth issuing on a summer's morn, to breathe
+Among the pleasant villages and farms
+Adjoined, from each thing met conceives delight;
+The smell of grain, or tedded grass, or kine,
+Or dairy, each rural sight, each rural sound;
+If chance, with nymph-like step, fair virgin pass,
+What pleasing seemed, for her now pleases more;
+She most, and in her look sums all delight:
+Such pleasure took the Serpent to behold
+This flowery plat, the sweet recess of Eve
+Thus early, thus alone: Her heavenly form
+Angelick, but more soft, and feminine,
+Her graceful innocence, her every air
+Of gesture, or least action, overawed
+His malice, and with rapine sweet bereaved
+His fierceness of the fierce intent it brought:
+That space the Evil-one abstracted stood
+From his own evil, and for the time remained
+Stupidly good; of enmity disarmed,
+Of guile, of hate, of envy, of revenge:
+But the hot Hell that always in him burns,
+Though in mid Heaven, soon ended his delight,
+And tortures him now more, the more he sees
+Of pleasure, not for him ordained: then soon
+Fierce hate he recollects, and all his thoughts
+Of mischief, gratulating, thus excites.
+Thoughts, whither have ye led me! with what sweet
+Compulsion thus transported, to forget
+What hither brought us! hate, not love;nor hope
+Of Paradise for Hell, hope here to taste
+Of pleasure; but all pleasure to destroy,
+Save what is in destroying; other joy
+To me is lost. Then, let me not let pass
+Occasion which now smiles; behold alone
+The woman, opportune to all attempts,
+Her husband, for I view far round, not nigh,
+Whose higher intellectual more I shun,
+And strength, of courage haughty, and of limb
+Heroick built, though of terrestrial mould;
+Foe not informidable! exempt from wound,
+I not; so much hath Hell debased, and pain
+Enfeebled me, to what I was in Heaven.
+She fair, divinely fair, fit love for Gods!
+Not terrible, though terrour be in love
+And beauty, not approached by stronger hate,
+Hate stronger, under show of love well feigned;
+The way which to her ruin now I tend.
+So spake the enemy of mankind, enclosed
+In serpent, inmate bad! and toward Eve
+Addressed his way: not with indented wave,
+Prone on the ground, as since; but on his rear,
+Circular base of rising folds, that towered
+Fold above fold, a surging maze! his head
+Crested aloft, and carbuncle his eyes;
+With burnished neck of verdant gold, erect
+Amidst his circling spires, that on the grass
+Floated redundant: pleasing was his shape
+And lovely; never since of serpent-kind
+Lovelier, not those that in Illyria changed,
+Hermione and Cadmus, or the god
+In Epidaurus; nor to which transformed
+Ammonian Jove, or Capitoline, was seen;
+He with Olympias; this with her who bore
+Scipio, the highth of Rome. With tract oblique
+At first, as one who sought access, but feared
+To interrupt, side-long he works his way.
+As when a ship, by skilful steersmen wrought
+Nigh river's mouth or foreland, where the wind
+Veers oft, as oft so steers, and shifts her sail:
+So varied he, and of his tortuous train
+Curled many a wanton wreath in sight of Eve,
+To lure her eye; she, busied, heard the sound
+Of rusling leaves, but minded not, as used
+To such disport before her through the field,
+From every beast; more duteous at her call,
+Than at Circean call the herd disguised.
+He, bolder now, uncalled before her stood,
+But as in gaze admiring: oft he bowed
+His turret crest, and sleek enamelled neck,
+Fawning; and licked the ground whereon she trod.
+His gentle dumb expression turned at length
+The eye of Eve to mark his play; he, glad
+Of her attention gained, with serpent-tongue
+Organick, or impulse of vocal air,
+His fraudulent temptation thus began.
+Wonder not, sovran Mistress, if perhaps
+Thou canst, who art sole wonder! much less arm
+Thy looks, the Heaven of mildness, with disdain,
+Displeased that I approach thee thus, and gaze
+Insatiate; I thus single;nor have feared
+Thy awful brow, more awful thus retired.
+Fairest resemblance of thy Maker fair,
+Thee all things living gaze on, all things thine
+By gift, and thy celestial beauty adore
+With ravishment beheld! there best beheld,
+Where universally admired; but here
+In this enclosure wild, these beasts among,
+Beholders rude, and shallow to discern
+Half what in thee is fair, one man except,
+Who sees thee? and what is one? who should be seen
+A Goddess among Gods, adored and served
+By Angels numberless, thy daily train.
+So glozed the Tempter, and his proem tuned:
+Into the heart of Eve his words made way,
+Though at the voice much marvelling; at length,
+Not unamazed, she thus in answer spake.
+What may this mean? language of man pronounced
+By tongue of brute, and human sense expressed?
+The first, at least, of these I thought denied
+To beasts; whom God, on their creation-day,
+Created mute to all articulate sound:
+The latter I demur; for in their looks
+Much reason, and in their actions, oft appears.
+Thee, Serpent, subtlest beast of all the field
+I knew, but not with human voice endued;
+Redouble then this miracle, and say,
+How camest thou speakable of mute, and how
+To me so friendly grown above the rest
+Of brutal kind, that daily are in sight?
+Say, for such wonder claims attention due.
+To whom the guileful Tempter thus replied.
+Empress of this fair world, resplendent Eve!
+Easy to me it is to tell thee all
+What thou commandest; and right thou shouldst be obeyed:
+I was at first as other beasts that graze
+The trodden herb, of abject thoughts and low,
+As was my food; nor aught but food discerned
+Or sex, and apprehended nothing high:
+Till, on a day roving the field, I chanced
+A goodly tree far distant to behold
+Loaden with fruit of fairest colours mixed,
+Ruddy and gold: I nearer drew to gaze;
+When from the boughs a savoury odour blown,
+Grateful to appetite, more pleased my sense
+Than smell of sweetest fennel, or the teats
+Of ewe or goat dropping with milk at even,
+Unsucked of lamb or kid, that tend their play.
+To satisfy the sharp desire I had
+Of tasting those fair apples, I resolved
+Not to defer; hunger and thirst at once,
+Powerful persuaders, quickened at the scent
+Of that alluring fruit, urged me so keen.
+About the mossy trunk I wound me soon;
+For, high from ground, the branches would require
+Thy utmost reach or Adam's: Round the tree
+All other beasts that saw, with like desire
+Longing and envying stood, but could not reach.
+Amid the tree now got, where plenty hung
+Tempting so nigh, to pluck and eat my fill
+I spared not; for, such pleasure till that hour,
+At feed or fountain, never had I found.
+Sated at length, ere long I might perceive
+Strange alteration in me, to degree
+Of reason in my inward powers; and speech
+Wanted not long; though to this shape retained.
+Thenceforth to speculations high or deep
+I turned my thoughts, and with capacious mind
+Considered all things visible in Heaven,
+Or Earth, or Middle; all things fair and good:
+But all that fair and good in thy divine
+Semblance, and in thy beauty's heavenly ray,
+United I beheld; no fair to thine
+Equivalent or second! which compelled
+Me thus, though importune perhaps, to come
+And gaze, and worship thee of right declared
+Sovran of creatures, universal Dame!
+So talked the spirited sly Snake; and Eve,
+Yet more amazed, unwary thus replied.
+Serpent, thy overpraising leaves in doubt
+The virtue of that fruit, in thee first proved:
+But say, where grows the tree? from hence how far?
+For many are the trees of God that grow
+In Paradise, and various, yet unknown
+To us; in such abundance lies our choice,
+As leaves a greater store of fruit untouched,
+Still hanging incorruptible, till men
+Grow up to their provision, and more hands
+Help to disburden Nature of her birth.
+To whom the wily Adder, blithe and glad.
+Empress, the way is ready, and not long;
+Beyond a row of myrtles, on a flat,
+Fast by a fountain, one small thicket past
+Of blowing myrrh and balm: if thou accept
+My conduct, I can bring thee thither soon
+Lead then, said Eve. He, leading, swiftly rolled
+In tangles, and made intricate seem straight,
+To mischief swift. Hope elevates, and joy
+Brightens his crest; as when a wandering fire,
+Compact of unctuous vapour, which the night
+Condenses, and the cold environs round,
+Kindled through agitation to a flame,
+Which oft, they say, some evil Spirit attends,
+Hovering and blazing with delusive light,
+Misleads the amazed night-wanderer from his way
+To bogs and mires, and oft through pond or pool;
+There swallowed up and lost, from succour far.
+So glistered the dire Snake, and into fraud
+Led Eve, our credulous mother, to the tree
+Of prohibition, root of all our woe;
+Which when she saw, thus to her guide she spake.
+Serpent, we might have spared our coming hither,
+Fruitless to me, though fruit be here to excess,
+The credit of whose virtue rest with thee;
+Wonderous indeed, if cause of such effects.
+But of this tree we may not taste nor touch;
+God so commanded, and left that command
+Sole daughter of his voice; the rest, we live
+Law to ourselves; our reason is our law.
+To whom the Tempter guilefully replied.
+Indeed! hath God then said that of the fruit
+Of all these garden-trees ye shall not eat,
+Yet Lords declared of all in earth or air$?
+To whom thus Eve, yet sinless. Of the fruit
+Of each tree in the garden we may eat;
+But of the fruit of this fair tree amidst
+The garden, God hath said, Ye shall not eat
+Thereof, nor shall ye touch it, lest ye die.
+She scarce had said, though brief, when now more bold
+The Tempter, but with show of zeal and love
+To Man, and indignation at his wrong,
+New part puts on; and, as to passion moved,
+Fluctuates disturbed, yet comely and in act
+Raised, as of some great matter to begin.
+As when of old some orator renowned,
+In Athens or free Rome, where eloquence
+Flourished, since mute! to some great cause addressed,
+Stood in himself collected; while each part,
+Motion, each act, won audience ere the tongue;
+Sometimes in highth began, as no delay
+Of preface brooking, through his zeal of right:
+So standing, moving, or to highth up grown,
+The Tempter, all impassioned, thus began.
+O sacred, wise, and wisdom-giving Plant,
+Mother of science! now I feel thy power
+Within me clear; not only to discern
+Things in their causes, but to trace the ways
+Of highest agents, deemed however wise.
+Queen of this universe! do not believe
+Those rigid threats of death: ye shall not die:
+How should you? by the fruit? it gives you life
+To knowledge; by the threatener? look on me,
+Me, who have touched and tasted; yet both live,
+And life more perfect have attained than Fate
+Meant me, by venturing higher than my lot.
+Shall that be shut to Man, which to the Beast
+Is open? or will God incense his ire
+For such a petty trespass? and not praise
+Rather your dauntless virtue, whom the pain
+Of death denounced, whatever thing death be,
+Deterred not from achieving what might lead
+To happier life, knowledge of good and evil;
+Of good, how just? of evil, if what is evil
+Be real, why not known, since easier shunned?
+God therefore cannot hurt ye, and be just;
+Not just, not God; not feared then, nor obeyed:
+Your fear itself of death removes the fear.
+Why then was this forbid? Why, but to awe;
+Why, but to keep ye low and ignorant,
+His worshippers? He knows that in the day
+Ye eat thereof, your eyes that seem so clear,
+Yet are but dim, shall perfectly be then
+Opened and cleared, and ye shall be as Gods,
+Knowing both good and evil, as they know.
+That ye shall be as Gods, since I as Man,
+Internal Man, is but proportion meet;
+I, of brute, human; ye, of human, Gods.
+So ye shall die perhaps, by putting off
+Human, to put on Gods; death to be wished,
+Though threatened, which no worse than this can bring.
+And what are Gods, that Man may not become
+As they, participating God-like food?
+The Gods are first, and that advantage use
+On our belief, that all from them proceeds:
+I question it; for this fair earth I see,
+Warmed by the sun, producing every kind;
+Them, nothing: if they all things, who enclosed
+Knowledge of good and evil in this tree,
+That whoso eats thereof, forthwith attains
+Wisdom without their leave? and wherein lies
+The offence, that Man should thus attain to know?
+What can your knowledge hurt him, or this tree
+Impart against his will, if all be his?
+Or is it envy? and can envy dwell
+In heavenly breasts? These, these, and many more
+Causes import your need of this fair fruit.
+Goddess humane, reach then, and freely taste!
+He ended; and his words, replete with guile,
+Into her heart too easy entrance won:
+Fixed on the fruit she gazed, which to behold
+Might tempt alone; and in her ears the sound
+Yet rung of his persuasive words, impregned
+With reason, to her seeming, and with truth:
+Mean while the hour of noon drew on, and waked
+An eager appetite, raised by the smell
+So savoury of that fruit, which with desire,
+Inclinable now grown to touch or taste,
+Solicited her longing eye; yet first
+Pausing a while, thus to herself she mused.
+Great are thy virtues, doubtless, best of fruits,
+Though kept from man, and worthy to be admired;
+Whose taste, too long forborn, at first assay
+Gave elocution to the mute, and taught
+The tongue not made for speech to speak thy praise:
+Thy praise he also, who forbids thy use,
+Conceals not from us, naming thee the tree
+Of knowledge, knowledge both of good and evil;
+Forbids us then to taste! but his forbidding
+Commends thee more, while it infers the good
+By thee communicated, and our want:
+For good unknown sure is not had; or, had
+And yet unknown, is as not had at all.
+In plain then, what forbids he but to know,
+Forbids us good, forbids us to be wise?
+Such prohibitions bind not. But, if death
+Bind us with after-bands, what profits then
+Our inward freedom? In the day we eat
+Of this fair fruit, our doom is, we shall die!
+How dies the Serpent? he hath eaten and lives,
+And knows, and speaks, and reasons, and discerns,
+Irrational till then. For us alone
+Was death invented? or to us denied
+This intellectual food, for beasts reserved?
+For beasts it seems: yet that one beast which first
+Hath tasted envies not, but brings with joy
+The good befallen him, author unsuspect,
+Friendly to man, far from deceit or guile.
+What fear I then? rather, what know to fear
+Under this ignorance of good and evil,
+Of God or death, of law or penalty?
+Here grows the cure of all, this fruit divine,
+Fair to the eye, inviting to the taste,
+Of virtue to make wise: What hinders then
+To reach, and feed at once both body and mind?
+So saying, her rash hand in evil hour
+Forth reaching to the fruit, she plucked, she eat!
+Earth felt the wound; and Nature from her seat,
+Sighing through all her works, gave signs of woe,
+That all was lost. Back to the thicket slunk
+The guilty Serpent; and well might;for Eve,
+Intent now wholly on her taste, nought else
+Regarded; such delight till then, as seemed,
+In fruit she never tasted, whether true
+Or fancied so, through expectation high
+Of knowledge; not was Godhead from her thought.
+Greedily she ingorged without restraint,
+And knew not eating death: Satiate at length,
+And hightened as with wine, jocund and boon,
+Thus to herself she pleasingly began.
+O sovran, virtuous, precious of all trees
+In Paradise! of operation blest
+To sapience, hitherto obscured, infamed.
+And thy fair fruit let hang, as to no end
+Created; but henceforth my early care,
+Not without song, each morning, and due praise,
+Shall tend thee, and the fertile burden ease
+Of thy full branches offered free to all;
+Till, dieted by thee, I grow mature
+In knowledge, as the Gods, who all things know;
+Though others envy what they cannot give:
+For, had the gift been theirs, it had not here
+Thus grown. Experience, next, to thee I owe,
+Best guide; not following thee, I had remained
+In ignorance; thou openest wisdom's way,
+And givest access, though secret she retire.
+And I perhaps am secret: Heaven is high,
+High, and remote to see from thence distinct
+Each thing on Earth; and other care perhaps
+May have diverted from continual watch
+Our great Forbidder, safe with all his spies
+About him. But to Adam in what sort
+Shall I appear? shall I to him make known
+As yet my change, and give him to partake
+Full happiness with me, or rather not,
+But keeps the odds of knowledge in my power
+Without copartner? so to add what wants
+In female sex, the more to draw his love,
+And render me more equal; and perhaps,
+A thing not undesirable, sometime
+Superiour; for, inferiour, who is free
+This may be well: But what if God have seen,
+And death ensue? then I shall be no more!
+And Adam, wedded to another Eve,
+Shall live with her enjoying, I extinct;
+A death to think! Confirmed then I resolve,
+Adam shall share with me in bliss or woe:
+So dear I love him, that with him all deaths
+I could endure, without him live no life.
+So saying, from the tree her step she turned;
+But first low reverence done, as to the Power
+That dwelt within, whose presence had infused
+Into the plant sciential sap, derived
+From nectar, drink of Gods. Adam the while,
+Waiting desirous her return, had wove
+Of choicest flowers a garland, to adorn
+Her tresses, and her rural labours crown;
+As reapers oft are wont their harvest-queen.
+Great joy he promised to his thoughts, and new
+Solace in her return, so long delayed:
+Yet oft his heart, divine of something ill,
+Misgave him; he the faltering measure felt;
+And forth to meet her went, the way she took
+That morn when first they parted: by the tree
+Of knowledge he must pass; there he her met,
+Scarce from the tree returning; in her hand
+A bough of fairest fruit, that downy smiled,
+New gathered, and ambrosial smell diffused.
+To him she hasted; in her face excuse
+Came prologue, and apology too prompt;
+Which, with bland words at will, she thus addressed.
+Hast thou not wondered, Adam, at my stay?
+Thee I have missed, and thought it long, deprived
+Thy presence; agony of love till now
+Not felt, nor shall be twice; for never more
+Mean I to try, what rash untried I sought,
+The pain of absence from thy sight. But strange
+Hath been the cause, and wonderful to hear:
+This tree is not, as we are told, a tree
+Of danger tasted, nor to evil unknown
+Opening the way, but of divine effect
+To open eyes, and make them Gods who taste;
+And hath been tasted such: The serpent wise,
+Or not restrained as we, or not obeying,
+Hath eaten of the fruit; and is become,
+Not dead, as we are threatened, but thenceforth
+Endued with human voice and human sense,
+Reasoning to admiration; and with me
+Persuasively hath so prevailed, that I
+Have also tasted, and have also found
+The effects to correspond; opener mine eyes,
+Dim erst, dilated spirits, ampler heart,
+And growing up to Godhead; which for thee
+Chiefly I sought, without thee can despise.
+For bliss, as thou hast part, to me is bliss;
+Tedious, unshared with thee, and odious soon.
+Thou therefore also taste, that equal lot
+May join us, equal joy, as equal love;
+Lest, thou not tasting, different degree
+Disjoin us, and I then too late renounce
+Deity for thee, when Fate will not permit.
+Thus Eve with countenance blithe her story told;
+But in her cheek distemper flushing glowed.
+On the other side Adam, soon as he heard
+The fatal trespass done by Eve, amazed,
+Astonied stood and blank, while horrour chill
+Ran through his veins, and all his joints relaxed;
+From his slack hand the garland wreathed for Eve
+Down dropt, and all the faded roses shed:
+Speechless he stood and pale, till thus at length
+First to himself he inward silence broke.
+O fairest of Creation, last and best
+Of all God's works, Creature in whom excelled
+Whatever can to sight or thought be formed,
+Holy, divine, good, amiable, or sweet!
+How art thou lost! how on a sudden lost,
+Defaced, deflowered, and now to death devote!
+Rather, how hast thou yielded to transgress
+The strict forbiddance, how to violate
+The sacred fruit forbidden! Some cursed fraud
+Of enemy hath beguiled thee, yet unknown,
+And me with thee hath ruined; for with thee
+Certain my resolution is to die:
+How can I live without thee! how forego
+Thy sweet converse, and love so dearly joined,
+To live again in these wild woods forlorn!
+Should God create another Eve, and I
+Another rib afford, yet loss of thee
+Would never from my heart: no, no!I feel
+The link of Nature draw me: flesh of flesh,
+Bone of my bone thou art, and from thy state
+Mine never shall be parted, bliss or woe.
+So having said, as one from sad dismay
+Recomforted, and after thoughts disturbed
+Submitting to what seemed remediless,
+Thus in calm mood his words to Eve he turned.
+Bold deed thou hast presumed, adventurous Eve,
+And peril great provoked, who thus hast dared,
+Had it been only coveting to eye
+That sacred fruit, sacred to abstinence,
+Much more to taste it under ban to touch.
+But past who can recall, or done undo?
+Not God Omnipotent, nor Fate; yet so
+Perhaps thou shalt not die, perhaps the fact
+Is not so heinous now, foretasted fruit,
+Profaned first by the serpent, by him first
+Made common, and unhallowed, ere our taste;
+Nor yet on him found deadly; yet he lives;
+Lives, as thou saidst, and gains to live, as Man,
+Higher degree of life; inducement strong
+To us, as likely tasting to attain
+Proportional ascent; which cannot be
+But to be Gods, or Angels, demi-Gods.
+Nor can I think that God, Creator wise,
+Though threatening, will in earnest so destroy
+Us his prime creatures, dignified so high,
+Set over all his works; which in our fall,
+For us created, needs with us must fail,
+Dependant made; so God shall uncreate,
+Be frustrate, do, undo, and labour lose;
+Not well conceived of God, who, though his power
+Creation could repeat, yet would be loth
+Us to abolish, lest the Adversary
+Triumph, and say; "Fickle their state whom God
+"Most favours; who can please him long? Me first
+"He ruined, now Mankind; whom will he next?"
+Matter of scorn, not to be given the Foe.
+However I with thee have fixed my lot,
+Certain to undergo like doom: If death
+Consort with thee, death is to me as life;
+So forcible within my heart I feel
+The bond of Nature draw me to my own;
+My own in thee, for what thou art is mine;
+Our state cannot be severed; we are one,
+One flesh; to lose thee were to lose myself.
+So Adam; and thus Eve to him replied.
+O glorious trial of exceeding love,
+Illustrious evidence, example high!
+Engaging me to emulate; but, short
+Of thy perfection, how shall I attain,
+Adam, from whose dear side I boast me sprung,
+And gladly of our union hear thee speak,
+One heart, one soul in both; whereof good proof
+This day affords, declaring thee resolved,
+Rather than death, or aught than death more dread,
+Shall separate us, linked in love so dear,
+To undergo with me one guilt, one crime,
+If any be, of tasting this fair fruit;
+Whose virtue for of good still good proceeds,
+Direct, or by occasion, hath presented
+This happy trial of thy love, which else
+So eminently never had been known?
+Were it I thought death menaced would ensue
+This my attempt, I would sustain alone
+The worst, and not persuade thee, rather die
+Deserted, than oblige thee with a fact
+Pernicious to thy peace; chiefly assured
+Remarkably so late of thy so true,
+So faithful, love unequalled: but I feel
+Far otherwise the event; not death, but life
+Augmented, opened eyes, new hopes, new joys,
+Taste so divine, that what of sweet before
+Hath touched my sense, flat seems to this, and harsh.
+On my experience, Adam, freely taste,
+And fear of death deliver to the winds.
+So saying, she embraced him, and for joy
+Tenderly wept; much won, that he his love
+Had so ennobled, as of choice to incur
+Divine displeasure for her sake, or death.
+In recompence for such compliance bad
+Such recompence best merits from the bough
+She gave him of that fair enticing fruit
+With liberal hand: he scrupled not to eat,
+Against his better knowledge; not deceived,
+But fondly overcome with female charm.
+Earth trembled from her entrails, as again
+In pangs; and Nature gave a second groan;
+Sky loured; and, muttering thunder, some sad drops
+Wept at completing of the mortal sin
+Original: while Adam took no thought,
+Eating his fill; nor Eve to iterate
+Her former trespass feared, the more to sooth
+Him with her loved society; that now,
+As with new wine intoxicated both,
+They swim in mirth, and fancy that they feel
+Divinity within them breeding wings,
+Wherewith to scorn the earth: But that false fruit
+Far other operation first displayed,
+Carnal desire inflaming; he on Eve
+Began to cast lascivious eyes; she him
+As wantonly repaid; in lust they burn:
+Till Adam thus 'gan Eve to dalliance move.
+Eve, now I see thou art exact of taste,
+And elegant, of sapience no small part;
+Since to each meaning savour we apply,
+And palate call judicious; I the praise
+Yield thee, so well this day thou hast purveyed.
+Much pleasure we have lost, while we abstained
+From this delightful fruit, nor known till now
+True relish, tasting; if such pleasure be
+In things to us forbidden, it might be wished,
+For this one tree had been forbidden ten.
+But come, so well refreshed, now let us play,
+As meet is, after such delicious fare;
+For never did thy beauty, since the day
+I saw thee first and wedded thee, adorned
+With all perfections, so inflame my sense
+With ardour to enjoy thee, fairer now
+Than ever; bounty of this virtuous tree!
+So said he, and forbore not glance or toy
+Of amorous intent; well understood
+Of Eve, whose eye darted contagious fire.
+Her hand he seised; and to a shady bank,
+Thick over-head with verdant roof imbowered,
+He led her nothing loth; flowers were the couch,
+Pansies, and violets, and asphodel,
+And hyacinth; Earth's freshest softest lap.
+There they their fill of love and love's disport
+Took largely, of their mutual guilt the seal,
+The solace of their sin; till dewy sleep
+Oppressed them, wearied with their amorous play,
+Soon as the force of that fallacious fruit,
+That with exhilarating vapour bland
+About their spirits had played, and inmost powers
+Made err, was now exhaled; and grosser sleep,
+Bred of unkindly fumes, with conscious dreams
+Incumbered, now had left them; up they rose
+As from unrest; and, each the other viewing,
+Soon found their eyes how opened, and their minds
+How darkened; innocence, that as a veil
+Had shadowed them from knowing ill, was gone;
+Just confidence, and native righteousness,
+And honour, from about them, naked left
+To guilty Shame; he covered, but his robe
+Uncovered more. So rose the Danite strong,
+Herculean Samson, from the harlot-lap
+Of Philistean Dalilah, and waked
+Shorn of his strength. They destitute and bare
+Of all their virtue: Silent, and in face
+Confounded, long they sat, as strucken mute:
+Till Adam, though not less than Eve abashed,
+At length gave utterance to these words constrained.
+O Eve, in evil hour thou didst give ear
+To that false worm, of whomsoever taught
+To counterfeit Man's voice; true in our fall,
+False in our promised rising; since our eyes
+Opened we find indeed, and find we know
+Both good and evil; good lost, and evil got;
+Bad fruit of knowledge, if this be to know;
+Which leaves us naked thus, of honour void,
+Of innocence, of faith, of purity,
+Our wonted ornaments now soiled and stained,
+And in our faces evident the signs
+Of foul concupiscence; whence evil store;
+Even shame, the last of evils; of the first
+Be sure then.--How shall I behold the face
+Henceforth of God or Angel, erst with joy
+And rapture so oft beheld? Those heavenly shapes
+Will dazzle now this earthly with their blaze
+Insufferably bright. O! might I here
+In solitude live savage; in some glade
+Obscured, where highest woods, impenetrable
+To star or sun-light, spread their umbrage broad
+And brown as evening: Cover me, ye Pines!
+Ye Cedars, with innumerable boughs
+Hide me, where I may never see them more!--
+But let us now, as in bad plight, devise
+What best may for the present serve to hide
+The parts of each from other, that seem most
+To shame obnoxious, and unseemliest seen;
+Some tree, whose broad smooth leaves together sewed,
+And girded on our loins, may cover round
+Those middle parts; that this new comer, Shame,
+There sit not, and reproach us as unclean.
+So counselled he, and both together went
+Into the thickest wood; there soon they chose
+The fig-tree; not that kind for fruit renowned,
+But such as at this day, to Indians known,
+In Malabar or Decan spreads her arms
+Branching so broad and long, that in the ground
+The bended twigs take root, and daughters grow
+About the mother tree, a pillared shade
+High over-arched, and echoing walks between:
+There oft the Indian herdsman, shunning heat,
+Shelters in cool, and tends his pasturing herds
+At loop-holes cut through thickest shade: Those leaves
+They gathered, broad as Amazonian targe;
+And, with what skill they had, together sewed,
+To gird their waist; vain covering, if to hide
+Their guilt and dreaded shame! O, how unlike
+To that first naked glory! Such of late
+Columbus found the American, so girt
+With feathered cincture; naked else, and wild
+Among the trees on isles and woody shores.
+Thus fenced, and, as they thought, their shame in part
+Covered, but not at rest or ease of mind,
+They sat them down to weep; nor only tears
+Rained at their eyes, but high winds worse within
+Began to rise, high passions, anger, hate,
+Mistrust, suspicion, discord; and shook sore
+Their inward state of mind, calm region once
+And full of peace, now tost and turbulent:
+For Understanding ruled not, and the Will
+Heard not her lore; both in subjection now
+To sensual Appetite, who from beneath
+Usurping over sovran Reason claimed
+Superiour sway: From thus distempered breast,
+Adam, estranged in look and altered style,
+Speech intermitted thus to Eve renewed.
+Would thou hadst hearkened to my words, and staid
+With me, as I besought thee, when that strange
+Desire of wandering, this unhappy morn,
+I know not whence possessed thee; we had then
+Remained still happy; not, as now, despoiled
+Of all our good; shamed, naked, miserable!
+Let none henceforth seek needless cause to approve
+The faith they owe; when earnestly they seek
+Such proof, conclude, they then begin to fail.
+To whom, soon moved with touch of blame, thus Eve.
+What words have passed thy lips, Adam severe!
+Imputest thou that to my default, or will
+Of wandering, as thou callest it, which who knows
+But might as ill have happened thou being by,
+Or to thyself perhaps? Hadst thou been there,
+Or here the attempt, thou couldst not have discerned
+Fraud in the Serpent, speaking as he spake;
+No ground of enmity between us known,
+Why he should mean me ill, or seek to harm.
+Was I to have never parted from thy side?
+As good have grown there still a lifeless rib.
+Being as I am, why didst not thou, the head,
+Command me absolutely not to go,
+Going into such danger, as thou saidst?
+Too facile then, thou didst not much gainsay;
+Nay, didst permit, approve, and fair dismiss.
+Hadst thou been firm and fixed in thy dissent,
+Neither had I transgressed, nor thou with me.
+To whom, then first incensed, Adam replied.
+Is this the love, is this the recompence
+Of mine to thee, ingrateful Eve! expressed
+Immutable, when thou wert lost, not I;
+Who might have lived, and joyed immortal bliss,
+Yet willingly chose rather death with thee?
+And am I now upbraided as the cause
+Of thy transgressing? Not enough severe,
+It seems, in thy restraint: What could I more
+I warned thee, I admonished thee, foretold
+The danger, and the lurking enemy
+That lay in wait; beyond this, had been force;
+And force upon free will hath here no place.
+But confidence then bore thee on; secure
+Either to meet no danger, or to find
+Matter of glorious trial; and perhaps
+I also erred, in overmuch admiring
+What seemed in thee so perfect, that I thought
+No evil durst attempt thee; but I rue
+The errour now, which is become my crime,
+And thou the accuser. Thus it shall befall
+Him, who, to worth in women overtrusting,
+Lets her will rule: restraint she will not brook;
+And, left to herself, if evil thence ensue,
+She first his weak indulgence will accuse.
+Thus they in mutual accusation spent
+The fruitless hours, but neither self-condemning;
+And of their vain contest appeared no end.
+
+
+
+Book X
+
+
+Mean while the heinous and despiteful act
+Of Satan, done in Paradise; and how
+He, in the serpent, had perverted Eve,
+Her husband she, to taste the fatal fruit,
+Was known in Heaven; for what can 'scape the eye
+Of God all-seeing, or deceive his heart
+Omniscient? who, in all things wise and just,
+Hindered not Satan to attempt the mind
+Of Man, with strength entire and free will armed,
+Complete to have discovered and repulsed
+Whatever wiles of foe or seeming friend.
+For still they knew, and ought to have still remembered,
+The high injunction, not to taste that fruit,
+Whoever tempted; which they not obeying,
+(Incurred what could they less?) the penalty;
+And, manifold in sin, deserved to fall.
+Up into Heaven from Paradise in haste
+The angelick guards ascended, mute, and sad,
+For Man; for of his state by this they knew,
+Much wondering how the subtle Fiend had stolen
+Entrance unseen. Soon as the unwelcome news
+From Earth arrived at Heaven-gate, displeased
+All were who heard; dim sadness did not spare
+That time celestial visages, yet, mixed
+With pity, violated not their bliss.
+About the new-arrived, in multitudes
+The ethereal people ran, to hear and know
+How all befel: They towards the throne supreme,
+Accountable, made haste, to make appear,
+With righteous plea, their utmost vigilance
+And easily approved; when the Most High
+Eternal Father, from his secret cloud,
+Amidst in thunder uttered thus his voice.
+Assembled Angels, and ye Powers returned
+From unsuccessful charge; be not dismayed,
+Nor troubled at these tidings from the earth,
+Which your sincerest care could not prevent;
+Foretold so lately what would come to pass,
+When first this tempter crossed the gulf from Hell.
+I told ye then he should prevail, and speed
+On his bad errand; Man should be seduced,
+And flattered out of all, believing lies
+Against his Maker; no decree of mine
+Concurring to necessitate his fall,
+Or touch with lightest moment of impulse
+His free will, to her own inclining left
+In even scale. But fallen he is; and now
+What rests, but that the mortal sentence pass
+On his transgression,--death denounced that day?
+Which he presumes already vain and void,
+Because not yet inflicted, as he feared,
+By some immediate stroke; but soon shall find
+Forbearance no acquittance, ere day end.
+Justice shall not return as bounty scorned.
+But whom send I to judge them? whom but thee,
+Vicegerent Son? To thee I have transferred
+All judgement, whether in Heaven, or Earth, or Hell.
+Easy it may be seen that I intend
+Mercy colleague with justice, sending thee
+Man's friend, his Mediator, his designed
+Both ransom and Redeemer voluntary,
+And destined Man himself to judge Man fallen.
+So spake the Father; and, unfolding bright
+Toward the right hand his glory, on the Son
+Blazed forth unclouded Deity: He full
+Resplendent all his Father manifest
+Expressed, and thus divinely answered mild.
+Father Eternal, thine is to decree;
+Mine, both in Heaven and Earth, to do thy will
+Supreme; that thou in me, thy Son beloved,
+Mayest ever rest well pleased. I go to judge
+On earth these thy transgressours; but thou knowest,
+Whoever judged, the worst on me must light,
+When time shall be; for so I undertook
+Before thee; and, not repenting, this obtain
+Of right, that I may mitigate their doom
+On me derived; yet I shall temper so
+Justice with mercy, as may illustrate most
+Them fully satisfied, and thee appease.
+Attendance none shall need, nor train, where none
+Are to behold the judgement, but the judged,
+Those two; the third best absent is condemned,
+Convict by flight, and rebel to all law:
+Conviction to the serpent none belongs.
+Thus saying, from his radiant seat he rose
+Of high collateral glory: Him Thrones, and Powers,
+Princedoms, and Dominations ministrant,
+Accompanied to Heaven-gate; from whence
+Eden, and all the coast, in prospect lay.
+Down he descended straight; the speed of Gods
+Time counts not, though with swiftest minutes winged.
+Now was the sun in western cadence low
+From noon, and gentle airs, due at their hour,
+To fan the earth now waked, and usher in
+The evening cool; when he, from wrath more cool,
+Came the mild Judge, and Intercessour both,
+To sentence Man: The voice of God they heard
+Now walking in the garden, by soft winds
+Brought to their ears, while day declined; they heard,
+And from his presence hid themselves among
+The thickest trees, both man and wife; till God,
+Approaching, thus to Adam called aloud.
+Where art thou, Adam, wont with joy to meet
+My coming seen far off? I miss thee here,
+Not pleased, thus entertained with solitude,
+Where obvious duty ere while appeared unsought:
+Or come I less conspicuous, or what change
+Absents thee, or what chance detains?--Come forth!
+He came; and with him Eve, more loth, though first
+To offend; discountenanced both, and discomposed;
+Love was not in their looks, either to God,
+Or to each other; but apparent guilt,
+And shame, and perturbation, and despair,
+Anger, and obstinacy, and hate, and guile.
+Whence Adam, faltering long, thus answered brief.
+I heard thee in the garden, and of thy voice
+Afraid, being naked, hid myself. To whom
+The gracious Judge without revile replied.
+My voice thou oft hast heard, and hast not feared,
+But still rejoiced; how is it now become
+So dreadful to thee? That thou art naked, who
+Hath told thee? Hast thou eaten of the tree,
+Whereof I gave thee charge thou shouldst not eat?
+To whom thus Adam sore beset replied.
+O Heaven! in evil strait this day I stand
+Before my Judge; either to undergo
+Myself the total crime, or to accuse
+My other self, the partner of my life;
+Whose failing, while her faith to me remains,
+I should conceal, and not expose to blame
+By my complaint: but strict necessity
+Subdues me, and calamitous constraint;
+Lest on my head both sin and punishment,
+However insupportable, be all
+Devolved; though should I hold my peace, yet thou
+Wouldst easily detect what I conceal.--
+This Woman, whom thou madest to be my help,
+And gavest me as thy perfect gift, so good,
+So fit, so acceptable, so divine,
+That from her hand I could suspect no ill,
+And what she did, whatever in itself,
+Her doing seemed to justify the deed;
+She gave me of the tree, and I did eat.
+To whom the Sovran Presence thus replied.
+Was she thy God, that her thou didst obey
+Before his voice? or was she made thy guide,
+Superiour, or but equal, that to her
+Thou didst resign thy manhood, and the place
+Wherein God set thee above her made of thee,
+And for thee, whose perfection far excelled
+Hers in all real dignity? Adorned
+She was indeed, and lovely, to attract
+Thy love, not thy subjection; and her gifts
+Were such, as under government well seemed;
+Unseemly to bear rule; which was thy part
+And person, hadst thou known thyself aright.
+So having said, he thus to Eve in few.
+Say, Woman, what is this which thou hast done?
+To whom sad Eve, with shame nigh overwhelmed,
+Confessing soon, yet not before her Judge
+Bold or loquacious, thus abashed replied.
+The Serpent me beguiled, and I did eat.
+Which when the Lord God heard, without delay
+To judgement he proceeded on the accused
+Serpent, though brute; unable to transfer
+The guilt on him, who made him instrument
+Of mischief, and polluted from the end
+Of his creation; justly then accursed,
+As vitiated in nature: More to know
+Concerned not Man, (since he no further knew)
+Nor altered his offence; yet God at last
+To Satan first in sin his doom applied,
+Though in mysterious terms, judged as then best:
+And on the Serpent thus his curse let fall.
+Because thou hast done this, thou art accursed
+Above all cattle, each beast of the field;
+Upon thy belly groveling thou shalt go,
+And dust shalt eat all the days of thy life.
+Between thee and the woman I will put
+Enmity, and between thine and her seed;
+Her seed shall bruise thy head, thou bruise his heel.
+So spake this oracle, then verified
+When Jesus, Son of Mary, second Eve,
+Saw Satan fall, like lightning, down from Heaven,
+Prince of the air; then, rising from his grave
+Spoiled Principalities and Powers, triumphed
+In open show; and, with ascension bright,
+Captivity led captive through the air,
+The realm itself of Satan, long usurped;
+Whom he shall tread at last under our feet;
+Even he, who now foretold his fatal bruise;
+And to the Woman thus his sentence turned.
+Thy sorrow I will greatly multiply
+By thy conception; children thou shalt bring
+In sorrow forth; and to thy husband's will
+Thine shall submit; he over thee shall rule.
+On Adam last thus judgement he pronounced.
+Because thou hast hearkened to the voice of thy wife,
+And eaten of the tree, concerning which
+I charged thee, saying, Thou shalt not eat thereof:
+Cursed is the ground for thy sake; thou in sorrow
+Shalt eat thereof, all the days of thy life;
+Thorns also and thistles it shall bring thee forth
+Unbid; and thou shalt eat the herb of the field;
+In the sweat of thy face shalt thou eat bread,
+Till thou return unto the ground; for thou
+Out of the ground wast taken, know thy birth,
+For dust thou art, and shalt to dust return.
+So judged he Man, both Judge and Saviour sent;
+And the instant stroke of death, denounced that day,
+Removed far off; then, pitying how they stood
+Before him naked to the air, that now
+Must suffer change, disdained not to begin
+Thenceforth the form of servant to assume;
+As when he washed his servants feet; so now,
+As father of his family, he clad
+Their nakedness with skins of beasts, or slain,
+Or as the snake with youthful coat repaid;
+And thought not much to clothe his enemies;
+Nor he their outward only with the skins
+Of beasts, but inward nakedness, much more.
+Opprobrious, with his robe of righteousness,
+Arraying, covered from his Father's sight.
+To him with swift ascent he up returned,
+Into his blissful bosom reassumed
+In glory, as of old; to him appeased
+All, though all-knowing, what had passed with Man
+Recounted, mixing intercession sweet.
+Mean while, ere thus was sinned and judged on Earth,
+Within the gates of Hell sat Sin and Death,
+In counterview within the gates, that now
+Stood open wide, belching outrageous flame
+Far into Chaos, since the Fiend passed through,
+Sin opening; who thus now to Death began.
+O Son, why sit we here each other viewing
+Idly, while Satan, our great author, thrives
+In other worlds, and happier seat provides
+For us, his offspring dear? It cannot be
+But that success attends him; if mishap,
+Ere this he had returned, with fury driven
+By his avengers; since no place like this
+Can fit his punishment, or their revenge.
+Methinks I feel new strength within me rise,
+Wings growing, and dominion given me large
+Beyond this deep; whatever draws me on,
+Or sympathy, or some connatural force,
+Powerful at greatest distance to unite,
+With secret amity, things of like kind,
+By secretest conveyance. Thou, my shade
+Inseparable, must with me along;
+For Death from Sin no power can separate.
+But, lest the difficulty of passing back
+Stay his return perhaps over this gulf
+Impassable, impervious; let us try
+Adventurous work, yet to thy power and mine
+Not unagreeable, to found a path
+Over this main from Hell to that new world,
+Where Satan now prevails; a monument
+Of merit high to all the infernal host,
+Easing their passage hence, for intercourse,
+Or transmigration, as their lot shall lead.
+Nor can I miss the way, so strongly drawn
+By this new-felt attraction and instinct.
+Whom thus the meager Shadow answered soon.
+Go, whither Fate, and inclination strong,
+Leads thee; I shall not lag behind, nor err
+The way, thou leading; such a scent I draw
+Of carnage, prey innumerable, and taste
+The savour of death from all things there that live:
+Nor shall I to the work thou enterprisest
+Be wanting, but afford thee equal aid.
+So saying, with delight he snuffed the smell
+Of mortal change on earth. As when a flock
+Of ravenous fowl, though many a league remote,
+Against the day of battle, to a field,
+Where armies lie encamped, come flying, lured
+With scent of living carcasses designed
+For death, the following day, in bloody fight:
+So scented the grim Feature, and upturned
+His nostril wide into the murky air;
+Sagacious of his quarry from so far.
+Then both from out Hell-gates, into the waste
+Wide anarchy of Chaos, damp and dark,
+Flew diverse; and with power (their power was great)
+Hovering upon the waters, what they met
+Solid or slimy, as in raging sea
+Tost up and down, together crouded drove,
+From each side shoaling towards the mouth of Hell;
+As when two polar winds, blowing adverse
+Upon the Cronian sea, together drive
+Mountains of ice, that stop the imagined way
+Beyond Petsora eastward, to the rich
+Cathaian coast. The aggregated soil
+Death with his mace petrifick, cold and dry,
+As with a trident, smote; and fixed as firm
+As Delos, floating once; the rest his look
+Bound with Gorgonian rigour not to move;
+And with Asphaltick slime, broad as the gate,
+Deep to the roots of Hell the gathered beach
+They fastened, and the mole immense wrought on
+Over the foaming deep high-arched, a bridge
+Of length prodigious, joining to the wall
+Immoveable of this now fenceless world,
+Forfeit to Death; from hence a passage broad,
+Smooth, easy, inoffensive, down to Hell.
+So, if great things to small may be compared,
+Xerxes, the liberty of Greece to yoke,
+From Susa, his Memnonian palace high,
+Came to the sea: and, over Hellespont
+Bridging his way, Europe with Asia joined,
+And scourged with many a stroke the indignant waves.
+Now had they brought the work by wonderous art
+Pontifical, a ridge of pendant rock,
+Over the vexed abyss, following the track
+Of Satan to the self-same place where he
+First lighted from his wing, and landed safe
+From out of Chaos, to the outside bare
+Of this round world: With pins of adamant
+And chains they made all fast, too fast they made
+And durable! And now in little space
+The confines met of empyrean Heaven,
+And of this World; and, on the left hand, Hell
+With long reach interposed; three several ways
+In sight, to each of these three places led.
+And now their way to Earth they had descried,
+To Paradise first tending; when, behold!
+Satan, in likeness of an Angel bright,
+Betwixt the Centaur and the Scorpion steering
+His zenith, while the sun in Aries rose:
+Disguised he came; but those his children dear
+Their parent soon discerned, though in disguise.
+He, after Eve seduced, unminded slunk
+Into the wood fast by; and, changing shape,
+To observe the sequel, saw his guileful act
+By Eve, though all unweeting, seconded
+Upon her husband; saw their shame that sought
+Vain covertures; but when he saw descend
+The Son of God to judge them, terrified
+He fled; not hoping to escape, but shun
+The present; fearing, guilty, what his wrath
+Might suddenly inflict; that past, returned
+By night, and listening where the hapless pair
+Sat in their sad discourse, and various plaint,
+Thence gathered his own doom; which understood
+Not instant, but of future time, with joy
+And tidings fraught, to Hell he now returned;
+And at the brink of Chaos, near the foot
+Of this new wonderous pontifice, unhoped
+Met, who to meet him came, his offspring dear.
+Great joy was at their meeting, and at sight
+Of that stupendious bridge his joy encreased.
+Long he admiring stood, till Sin, his fair
+Enchanting daughter, thus the silence broke.
+O Parent, these are thy magnifick deeds,
+Thy trophies! which thou viewest as not thine own;
+Thou art their author, and prime architect:
+For I no sooner in my heart divined,
+My heart, which by a secret harmony
+Still moves with thine, joined in connexion sweet,
+That thou on earth hadst prospered, which thy looks
+Now also evidence, but straight I felt,
+Though distant from thee worlds between, yet felt,
+That I must after thee, with this thy son;
+Such fatal consequence unites us three!
+Hell could no longer hold us in our bounds,
+Nor this unvoyageable gulf obscure
+Detain from following thy illustrious track.
+Thou hast achieved our liberty, confined
+Within Hell-gates till now; thou us impowered
+To fortify thus far, and overlay,
+With this portentous bridge, the dark abyss.
+Thine now is all this world; thy virtue hath won
+What thy hands builded not; thy wisdom gained
+With odds what war hath lost, and fully avenged
+Our foil in Heaven; here thou shalt monarch reign,
+There didst not; there let him still victor sway,
+As battle hath adjudged; from this new world
+Retiring, by his own doom alienated;
+And henceforth monarchy with thee divide
+Of all things, parted by the empyreal bounds,
+His quadrature, from thy orbicular world;
+Or try thee now more dangerous to his throne.
+Whom thus the Prince of darkness answered glad.
+Fair Daughter, and thou Son and Grandchild both;
+High proof ye now have given to be the race
+Of Satan (for I glory in the name,
+Antagonist of Heaven's Almighty King,)
+Amply have merited of me, of all
+The infernal empire, that so near Heaven's door
+Triumphal with triumphal act have met,
+Mine, with this glorious work; and made one realm,
+Hell and this world, one realm, one continent
+Of easy thorough-fare. Therefore, while I
+Descend through darkness, on your road with ease,
+To my associate Powers, them to acquaint
+With these successes, and with them rejoice;
+You two this way, among these numerous orbs,
+All yours, right down to Paradise descend;
+There dwell, and reign in bliss; thence on the earth
+Dominion exercise and in the air,
+Chiefly on Man, sole lord of all declared;
+Him first make sure your thrall, and lastly kill.
+My substitutes I send ye, and create
+Plenipotent on earth, of matchless might
+Issuing from me: on your joint vigour now
+My hold of this new kingdom all depends,
+Through Sin to Death exposed by my exploit.
+If your joint power prevail, the affairs of Hell
+No detriment need fear; go, and be strong!
+So saying he dismissed them; they with speed
+Their course through thickest constellations held,
+Spreading their bane; the blasted stars looked wan,
+And planets, planet-struck, real eclipse
+Then suffered. The other way Satan went down
+The causey to Hell-gate: On either side
+Disparted Chaos overbuilt exclaimed,
+And with rebounding surge the bars assailed,
+That scorned his indignation: Through the gate,
+Wide open and unguarded, Satan passed,
+And all about found desolate; for those,
+Appointed to sit there, had left their charge,
+Flown to the upper world; the rest were all
+Far to the inland retired, about the walls
+Of Pandemonium; city and proud seat
+Of Lucifer, so by allusion called
+Of that bright star to Satan paragoned;
+There kept their watch the legions, while the Grand
+In council sat, solicitous what chance
+Might intercept their emperour sent; so he
+Departing gave command, and they observed.
+As when the Tartar from his Russian foe,
+By Astracan, over the snowy plains,
+Retires; or Bactrin Sophi, from the horns
+Of Turkish crescent, leaves all waste beyond
+The realm of Aladule, in his retreat
+To Tauris or Casbeen: So these, the late
+Heaven-banished host, left desart utmost Hell
+Many a dark league, reduced in careful watch
+Round their metropolis; and now expecting
+Each hour their great adventurer, from the search
+Of foreign worlds: He through the midst unmarked,
+In show plebeian Angel militant
+Of lowest order, passed; and from the door
+Of that Plutonian hall, invisible
+Ascended his high throne; which, under state
+Of richest texture spread, at the upper end
+Was placed in regal lustre. Down a while
+He sat, and round about him saw unseen:
+At last, as from a cloud, his fulgent head
+And shape star-bright appeared, or brighter; clad
+With what permissive glory since his fall
+Was left him, or false glitter: All amazed
+At that so sudden blaze the Stygian throng
+Bent their aspect, and whom they wished beheld,
+Their mighty Chief returned: loud was the acclaim:
+Forth rushed in haste the great consulting peers,
+Raised from their dark Divan, and with like joy
+Congratulant approached him; who with hand
+Silence, and with these words attention, won.
+Thrones, Dominations, Princedoms, Virtues, Powers;
+For in possession such, not only of right,
+I call ye, and declare ye now; returned
+Successful beyond hope, to lead ye forth
+Triumphant out of this infernal pit
+Abominable, accursed, the house of woe,
+And dungeon of our tyrant: Now possess,
+As Lords, a spacious world, to our native Heaven
+Little inferiour, by my adventure hard
+With peril great achieved. Long were to tell
+What I have done; what suffered;with what pain
+Voyaged th' unreal, vast, unbounded deep
+Of horrible confusion; over which
+By Sin and Death a broad way now is paved,
+To expedite your glorious march; but I
+Toiled out my uncouth passage, forced to ride
+The untractable abyss, plunged in the womb
+Of unoriginal Night and Chaos wild;
+That, jealous of their secrets, fiercely opposed
+My journey strange, with clamorous uproar
+Protesting Fate supreme; thence how I found
+The new created world, which fame in Heaven
+Long had foretold, a fabrick wonderful
+Of absolute perfection! therein Man
+Placed in a Paradise, by our exile
+Made happy: Him by fraud I have seduced
+From his Creator; and, the more to encrease
+Your wonder, with an apple; he, thereat
+Offended, worth your laughter! hath given up
+Both his beloved Man, and all his world,
+To Sin and Death a prey, and so to us,
+Without our hazard, labour, or alarm;
+To range in, and to dwell, and over Man
+To rule, as over all he should have ruled.
+True is, me also he hath judged, or rather
+Me not, but the brute serpent in whose shape
+Man I deceived: that which to me belongs,
+Is enmity which he will put between
+Me and mankind; I am to bruise his heel;
+His seed, when is not set, shall bruise my head:
+A world who would not purchase with a bruise,
+Or much more grievous pain?--Ye have the account
+Of my performance: What remains, ye Gods,
+But up, and enter now into full bliss?
+So having said, a while he stood, expecting
+Their universal shout, and high applause,
+To fill his ear; when, contrary, he hears
+On all sides, from innumerable tongues,
+A dismal universal hiss, the sound
+Of publick scorn; he wondered, but not long
+Had leisure, wondering at himself now more,
+His visage drawn he felt to sharp and spare;
+His arms clung to his ribs; his legs entwining
+Each other, till supplanted down he fell
+A monstrous serpent on his belly prone,
+Reluctant, but in vain; a greater power
+Now ruled him, punished in the shape he sinned,
+According to his doom: he would have spoke,
+But hiss for hiss returned with forked tongue
+To forked tongue; for now were all transformed
+Alike, to serpents all, as accessories
+To his bold riot: Dreadful was the din
+Of hissing through the hall, thick swarming now
+With complicated monsters head and tail,
+Scorpion, and Asp, and Amphisbaena dire,
+Cerastes horned, Hydrus, and Elops drear,
+And Dipsas; (not so thick swarmed once the soil
+Bedropt with blood of Gorgon, or the isle
+Ophiusa,) but still greatest he the midst,
+Now Dragon grown, larger than whom the sun
+Ingendered in the Pythian vale or slime,
+Huge Python, and his power no less he seemed
+Above the rest still to retain; they all
+Him followed, issuing forth to the open field,
+Where all yet left of that revolted rout,
+Heaven-fallen, in station stood or just array;
+Sublime with expectation when to see
+In triumph issuing forth their glorious Chief;
+They saw, but other sight instead! a croud
+Of ugly serpents; horrour on them fell,
+And horrid sympathy; for, what they saw,
+They felt themselves, now changing; down their arms,
+Down fell both spear and shield; down they as fast;
+And the dire hiss renewed, and the dire form
+Catched, by contagion; like in punishment,
+As in their crime. Thus was the applause they meant,
+Turned to exploding hiss, triumph to shame
+Cast on themselves from their own mouths. There stood
+A grove hard by, sprung up with this their change,
+His will who reigns above, to aggravate
+Their penance, laden with fair fruit, like that
+Which grew in Paradise, the bait of Eve
+Used by the Tempter: on that prospect strange
+Their earnest eyes they fixed, imagining
+For one forbidden tree a multitude
+Now risen, to work them further woe or shame;
+Yet, parched with scalding thirst and hunger fierce,
+Though to delude them sent, could not abstain;
+But on they rolled in heaps, and, up the trees
+Climbing, sat thicker than the snaky locks
+That curled Megaera: greedily they plucked
+The fruitage fair to sight, like that which grew
+Near that bituminous lake where Sodom flamed;
+This more delusive, not the touch, but taste
+Deceived; they, fondly thinking to allay
+Their appetite with gust, instead of fruit
+Chewed bitter ashes, which the offended taste
+With spattering noise rejected: oft they assayed,
+Hunger and thirst constraining; drugged as oft,
+With hatefullest disrelish writhed their jaws,
+With soot and cinders filled; so oft they fell
+Into the same illusion, not as Man
+Whom they triumphed once lapsed. Thus were they plagued
+And worn with famine, long and ceaseless hiss,
+Till their lost shape, permitted, they resumed;
+Yearly enjoined, some say, to undergo,
+This annual humbling certain numbered days,
+To dash their pride, and joy, for Man seduced.
+However, some tradition they dispersed
+Among the Heathen, of their purchase got,
+And fabled how the Serpent, whom they called
+Ophion, with Eurynome, the wide--
+Encroaching Eve perhaps, had first the rule
+Of high Olympus; thence by Saturn driven
+And Ops, ere yet Dictaean Jove was born.
+Mean while in Paradise the hellish pair
+Too soon arrived; Sin, there in power before,
+Once actual; now in body, and to dwell
+Habitual habitant; behind her Death,
+Close following pace for pace, not mounted yet
+On his pale horse: to whom Sin thus began.
+Second of Satan sprung, all-conquering Death!
+What thinkest thou of our empire now, though earned
+With travel difficult, not better far
+Than still at Hell's dark threshold to have sat watch,
+Unnamed, undreaded, and thyself half starved?
+Whom thus the Sin-born monster answered soon.
+To me, who with eternal famine pine,
+Alike is Hell, or Paradise, or Heaven;
+There best, where most with ravine I may meet;
+Which here, though plenteous, all too little seems
+To stuff this maw, this vast unhide-bound corps.
+To whom the incestuous mother thus replied.
+Thou therefore on these herbs, and fruits, and flowers,
+Feed first; on each beast next, and fish, and fowl;
+No homely morsels! and, whatever thing
+The sithe of Time mows down, devour unspared;
+Till I, in Man residing, through the race,
+His thoughts, his looks, words, actions, all infect;
+And season him thy last and sweetest prey.
+This said, they both betook them several ways,
+Both to destroy, or unimmortal make
+All kinds, and for destruction to mature
+Sooner or later; which the Almighty seeing,
+From his transcendent seat the Saints among,
+To those bright Orders uttered thus his voice.
+See, with what heat these dogs of Hell advance
+To waste and havock yonder world, which I
+So fair and good created; and had still
+Kept in that state, had not the folly of Man
+Let in these wasteful furies, who impute
+Folly to me; so doth the Prince of Hell
+And his adherents, that with so much ease
+I suffer them to enter and possess
+A place so heavenly; and, conniving, seem
+To gratify my scornful enemies,
+That laugh, as if, transported with some fit
+Of passion, I to them had quitted all,
+At random yielded up to their misrule;
+And know not that I called, and drew them thither,
+My Hell-hounds, to lick up the draff and filth
+Which Man's polluting sin with taint hath shed
+On what was pure; til, crammed and gorged, nigh burst
+With sucked and glutted offal, at one sling
+Of thy victorious arm, well-pleasing Son,
+Both Sin, and Death, and yawning Grave, at last,
+Through Chaos hurled, obstruct the mouth of Hell
+For ever, and seal up his ravenous jaws.
+Then Heaven and Earth renewed shall be made pure
+To sanctity, that shall receive no stain:
+Till then, the curse pronounced on both precedes.
+He ended, and the heavenly audience loud
+Sung Halleluiah, as the sound of seas,
+Through multitude that sung: Just are thy ways,
+Righteous are thy decrees on all thy works;
+Who can extenuate thee? Next, to the Son,
+Destined Restorer of mankind, by whom
+New Heaven and Earth shall to the ages rise,
+Or down from Heaven descend.--Such was their song;
+While the Creator, calling forth by name
+His mighty Angels, gave them several charge,
+As sorted best with present things. The sun
+Had first his precept so to move, so shine,
+As might affect the earth with cold and heat
+Scarce tolerable; and from the north to call
+Decrepit winter; from the south to bring
+Solstitial summer's heat. To the blanc moon
+Her office they prescribed; to the other five
+Their planetary motions, and aspects,
+In sextile, square, and trine, and opposite,
+Of noxious efficacy, and when to join
+In synod unbenign; and taught the fixed
+Their influence malignant when to shower,
+Which of them rising with the sun, or falling,
+Should prove tempestuous: To the winds they set
+Their corners, when with bluster to confound
+Sea, air, and shore; the thunder when to roll
+With terrour through the dark aereal hall.
+Some say, he bid his Angels turn ascanse
+The poles of earth, twice ten degrees and more,
+From the sun's axle; they with labour pushed
+Oblique the centrick globe: Some say, the sun
+Was bid turn reins from the equinoctial road
+Like distant breadth to Taurus with the seven
+Atlantick Sisters, and the Spartan Twins,
+Up to the Tropick Crab: thence down amain
+By Leo, and the Virgin, and the Scales,
+As deep as Capricorn; to bring in change
+Of seasons to each clime; else had the spring
+Perpetual smiled on earth with vernant flowers,
+Equal in days and nights, except to those
+Beyond the polar circles; to them day
+Had unbenighted shone, while the low sun,
+To recompense his distance, in their sight
+Had rounded still the horizon, and not known
+Or east or west; which had forbid the snow
+From cold Estotiland, and south as far
+Beneath Magellan. At that tasted fruit
+The sun, as from Thyestean banquet, turned
+His course intended; else, how had the world
+Inhabited, though sinless, more than now,
+Avoided pinching cold and scorching heat?
+These changes in the Heavens, though slow, produced
+Like change on sea and land; sideral blast,
+Vapour, and mist, and exhalation hot,
+Corrupt and pestilent: Now from the north
+Of Norumbega, and the Samoed shore,
+Bursting their brazen dungeon, armed with ice,
+And snow, and hail, and stormy gust and flaw,
+Boreas, and Caecias, and Argestes loud,
+And Thrascias, rend the woods, and seas upturn;
+With adverse blast upturns them from the south
+Notus, and Afer black with thunderous clouds
+From Serraliona; thwart of these, as fierce,
+Forth rush the Levant and the Ponent winds,
+Eurus and Zephyr, with their lateral noise,
+Sirocco and Libecchio. Thus began
+Outrage from lifeless things; but Discord first,
+Daughter of Sin, among the irrational
+Death introduced, through fierce antipathy:
+Beast now with beast 'gan war, and fowl with fowl,
+And fish with fish; to graze the herb all leaving,
+Devoured each other; nor stood much in awe
+Of Man, but fled him; or, with countenance grim,
+Glared on him passing. These were from without
+The growing miseries, which Adam saw
+Already in part, though hid in gloomiest shade,
+To sorrow abandoned, but worse felt within;
+And, in a troubled sea of passion tost,
+Thus to disburden sought with sad complaint.
+O miserable of happy! Is this the end
+Of this new glorious world, and me so late
+The glory of that glory, who now become
+Accursed, of blessed? hide me from the face
+Of God, whom to behold was then my highth
+Of happiness!--Yet well, if here would end
+The misery; I deserved it, and would bear
+My own deservings; but this will not serve:
+All that I eat or drink, or shall beget,
+Is propagated curse. O voice, once heard
+Delightfully, Encrease and multiply;
+Now death to hear! for what can I encrease,
+Or multiply, but curses on my head?
+Who of all ages to succeed, but, feeling
+The evil on him brought by me, will curse
+My head? Ill fare our ancestor impure,
+For this we may thank Adam! but his thanks
+Shall be the execration: so, besides
+Mine own that bide upon me, all from me
+Shall with a fierce reflux on me rebound;
+On me, as on their natural center, light
+Heavy, though in their place. O fleeting joys
+Of Paradise, dear bought with lasting woes!
+Did I request thee, Maker, from my clay
+To mould me Man? did I solicit thee
+From darkness to promote me, or here place
+In this delicious garden? As my will
+Concurred not to my being, it were but right
+And equal to reduce me to my dust;
+Desirous to resign and render back
+All I received; unable to perform
+Thy terms too hard, by which I was to hold
+The good I sought not. To the loss of that,
+Sufficient penalty, why hast thou added
+The sense of endless woes? Inexplicable
+Why am I mocked with death, and lengthened out
+To deathless pain? How gladly would I meet
+Mortality my sentence, and be earth
+Insensible! How glad would lay me down
+As in my mother's lap! There I should rest,
+And sleep secure; his dreadful voice no more
+Would thunder in my ears; no fear of worse
+To me, and to my offspring, would torment me
+With cruel expectation. Yet one doubt
+Pursues me still, lest all I cannot die;
+Lest that pure breath of life, the spirit of Man
+Which God inspired, cannot together perish
+With this corporeal clod; then, in the grave,
+Or in some other dismal place, who knows
+But I shall die a living death? O thought
+Horrid, if true! Yet why? It was but breath
+Of life that sinned; what dies but what had life
+And sin? The body properly had neither,
+All of me then shall die: let this appease
+The doubt, since human reach no further knows.
+For though the Lord of all be infinite,
+Is his wrath also? Be it, Man is not so,
+But mortal doomed. How can he exercise
+Wrath without end on Man, whom death must end?
+Can he make deathless death? That were to make
+Strange contradiction, which to God himself
+Impossible is held; as argument
+Of weakness, not of power. Will he draw out,
+For anger's sake, finite to infinite,
+In punished Man, to satisfy his rigour,
+Satisfied never? That were to extend
+His sentence beyond dust and Nature's law;
+By which all causes else, according still
+To the reception of their matter, act;
+Not to the extent of their own sphere. But say
+That death be not one stroke, as I supposed,
+Bereaving sense, but endless misery
+From this day onward; which I feel begun
+Both in me, and without me; and so last
+To perpetuity;--Ay me!that fear
+Comes thundering back with dreadful revolution
+On my defenceless head; both Death and I
+Am found eternal, and incorporate both;
+Nor I on my part single; in me all
+Posterity stands cursed: Fair patrimony
+That I must leave ye, Sons! O, were I able
+To waste it all myself, and leave ye none!
+So disinherited, how would you bless
+Me, now your curse! Ah, why should all mankind,
+For one man's fault, thus guiltless be condemned,
+It guiltless? But from me what can proceed,
+But all corrupt; both mind and will depraved
+Not to do only, but to will the same
+With me? How can they then acquitted stand
+In sight of God? Him, after all disputes,
+Forced I absolve: all my evasions vain,
+And reasonings, though through mazes, lead me still
+But to my own conviction: first and last
+On me, me only, as the source and spring
+Of all corruption, all the blame lights due;
+So might the wrath! Fond wish!couldst thou support
+That burden, heavier than the earth to bear;
+Than all the world much heavier, though divided
+With that bad Woman? Thus, what thou desirest,
+And what thou fearest, alike destroys all hope
+Of refuge, and concludes thee miserable
+Beyond all past example and future;
+To Satan only like both crime and doom.
+O Conscience! into what abyss of fears
+And horrours hast thou driven me; out of which
+I find no way, from deep to deeper plunged!
+Thus Adam to himself lamented loud,
+Through the still night; not now, as ere Man fell,
+Wholesome, and cool, and mild, but with black air
+Accompanied; with damps, and dreadful gloom;
+Which to his evil conscience represented
+All things with double terrour: On the ground
+Outstretched he lay, on the cold ground; and oft
+Cursed his creation; Death as oft accused
+Of tardy execution, since denounced
+The day of his offence. Why comes not Death,
+Said he, with one thrice-acceptable stroke
+To end me? Shall Truth fail to keep her word,
+Justice Divine not hasten to be just?
+But Death comes not at call; Justice Divine
+Mends not her slowest pace for prayers or cries,
+O woods, O fountains, hillocks, dales, and bowers!
+With other echo late I taught your shades
+To answer, and resound far other song.--
+Whom thus afflicted when sad Eve beheld,
+Desolate where she sat, approaching nigh,
+Soft words to his fierce passion she assayed:
+But her with stern regard he thus repelled.
+Out of my sight, thou Serpent! That name best
+Befits thee with him leagued, thyself as false
+And hateful; nothing wants, but that thy shape,
+Like his, and colour serpentine, may show
+Thy inward fraud; to warn all creatures from thee
+Henceforth; lest that too heavenly form, pretended
+To hellish falshood, snare them! But for thee
+I had persisted happy; had not thy pride
+And wandering vanity, when least was safe,
+Rejected my forewarning, and disdained
+Not to be trusted; longing to be seen,
+Though by the Devil himself; him overweening
+To over-reach; but, with the serpent meeting,
+Fooled and beguiled; by him thou, I by thee
+To trust thee from my side; imagined wise,
+Constant, mature, proof against all assaults;
+And understood not all was but a show,
+Rather than solid virtue; all but a rib
+Crooked by nature, bent, as now appears,
+More to the part sinister, from me drawn;
+Well if thrown out, as supernumerary
+To my just number found. O! why did God,
+Creator wise, that peopled highest Heaven
+With Spirits masculine, create at last
+This novelty on earth, this fair defect
+Of nature, and not fill the world at once
+With Men, as Angels, without feminine;
+Or find some other way to generate
+Mankind? This mischief had not been befallen,
+And more that shall befall; innumerable
+Disturbances on earth through female snares,
+And strait conjunction with this sex: for either
+He never shall find out fit mate, but such
+As some misfortune brings him, or mistake;
+Or whom he wishes most shall seldom gain
+Through her perverseness, but shall see her gained
+By a far worse; or, if she love, withheld
+By parents; or his happiest choice too late
+Shall meet, already linked and wedlock-bound
+To a fell adversary, his hate or shame:
+Which infinite calamity shall cause
+To human life, and houshold peace confound.
+He added not, and from her turned; but Eve,
+Not so repulsed, with tears that ceased not flowing
+And tresses all disordered, at his feet
+Fell humble; and, embracing them, besought
+His peace, and thus proceeded in her plaint.
+Forsake me not thus, Adam! witness Heaven
+What love sincere, and reverence in my heart
+I bear thee, and unweeting have offended,
+Unhappily deceived! Thy suppliant
+I beg, and clasp thy knees; bereave me not,
+Whereon I live, thy gentle looks, thy aid,
+Thy counsel, in this uttermost distress,
+My only strength and stay: Forlorn of thee,
+Whither shall I betake me, where subsist?
+While yet we live, scarce one short hour perhaps,
+Between us two let there be peace; both joining,
+As joined in injuries, one enmity
+Against a foe by doom express assigned us,
+That cruel Serpent: On me exercise not
+Thy hatred for this misery befallen;
+On me already lost, me than thyself
+More miserable! Both have sinned;but thou
+Against God only; I against God and thee;
+And to the place of judgement will return,
+There with my cries importune Heaven; that all
+The sentence, from thy head removed, may light
+On me, sole cause to thee of all this woe;
+Me, me only, just object of his ire!
+She ended weeping; and her lowly plight,
+Immoveable, till peace obtained from fault
+Acknowledged and deplored, in Adam wrought
+Commiseration: Soon his heart relented
+Towards her, his life so late, and sole delight,
+Now at his feet submissive in distress;
+Creature so fair his reconcilement seeking,
+His counsel, whom she had displeased, his aid:
+As one disarmed, his anger all he lost,
+And thus with peaceful words upraised her soon.
+Unwary, and too desirous, as before,
+So now of what thou knowest not, who desirest
+The punishment all on thyself; alas!
+Bear thine own first, ill able to sustain
+His full wrath, whose thou feelest as yet least part,
+And my displeasure bearest so ill. If prayers
+Could alter high decrees, I to that place
+Would speed before thee, and be louder heard,
+That on my head all might be visited;
+Thy frailty and infirmer sex forgiven,
+To me committed, and by me exposed.
+But rise;--let us no more contend, nor blame
+Each other, blamed enough elsewhere; but strive
+In offices of love, how we may lighten
+Each other's burden, in our share of woe;
+Since this day's death denounced, if aught I see,
+Will prove no sudden, but a slow-paced evil;
+A long day's dying, to augment our pain;
+And to our seed (O hapless seed!) derived.
+To whom thus Eve, recovering heart, replied.
+Adam, by sad experiment I know
+How little weight my words with thee can find,
+Found so erroneous; thence by just event
+Found so unfortunate: Nevertheless,
+Restored by thee, vile as I am, to place
+Of new acceptance, hopeful to regain
+Thy love, the sole contentment of my heart
+Living or dying, from thee I will not hide
+What thoughts in my unquiet breast are risen,
+Tending to some relief of our extremes,
+Or end; though sharp and sad, yet tolerable,
+As in our evils, and of easier choice.
+If care of our descent perplex us most,
+Which must be born to certain woe, devoured
+By Death at last; and miserable it is
+To be to others cause of misery,
+Our own begotten, and of our loins to bring
+Into this cursed world a woeful race,
+That after wretched life must be at last
+Food for so foul a monster; in thy power
+It lies, yet ere conception to prevent
+The race unblest, to being yet unbegot.
+Childless thou art, childless remain: so Death
+Shall be deceived his glut, and with us two
+Be forced to satisfy his ravenous maw.
+But if thou judge it hard and difficult,
+Conversing, looking, loving, to abstain
+From love's due rights, nuptial embraces sweet;
+And with desire to languish without hope,
+Before the present object languishing
+With like desire; which would be misery
+And torment less than none of what we dread;
+Then, both ourselves and seed at once to free
+From what we fear for both, let us make short, --
+Let us seek Death; -- or, he not found, supply
+With our own hands his office on ourselves:
+Why stand we longer shivering under fears,
+That show no end but death, and have the power,
+Of many ways to die the shortest choosing,
+Destruction with destruction to destroy? --
+She ended here, or vehement despair
+Broke off the rest: so much of death her thoughts
+Had entertained, as dyed her cheeks with pale.
+But Adam, with such counsel nothing swayed,
+To better hopes his more attentive mind
+Labouring had raised; and thus to Eve replied.
+Eve, thy contempt of life and pleasure seems
+To argue in thee something more sublime
+And excellent, than what thy mind contemns;
+But self-destruction therefore sought, refutes
+That excellence thought in thee; and implies,
+Not thy contempt, but anguish and regret
+For loss of life and pleasure overloved.
+Or if thou covet death, as utmost end
+Of misery, so thinking to evade
+The penalty pronounced; doubt not but God
+Hath wiselier armed his vengeful ire, than so
+To be forestalled; much more I fear lest death,
+So snatched, will not exempt us from the pain
+We are by doom to pay; rather, such acts
+Of contumacy will provoke the Highest
+To make death in us live: Then let us seek
+Some safer resolution, which methinks
+I have in view, calling to mind with heed
+Part of our sentence, that thy seed shall bruise
+The Serpent's head; piteous amends! unless
+Be meant, whom I conjecture, our grand foe,
+Satan; who, in the serpent, hath contrived
+Against us this deceit: To crush his head
+Would be revenge indeed! which will be lost
+By death brought on ourselves, or childless days
+Resolved, as thou proposest; so our foe
+Shal 'scape his punishment ordained, and we
+Instead shall double ours upon our heads.
+No more be mentioned then of violence
+Against ourselves; and wilful barrenness,
+That cuts us off from hope; and savours only
+Rancour and pride, impatience and despite,
+Reluctance against God and his just yoke
+Laid on our necks. Remember with what mild
+And gracious temper he both heard, and judged,
+Without wrath or reviling; we expected
+Immediate dissolution, which we thought
+Was meant by death that day; when lo!to thee
+Pains only in child-bearing were foretold,
+And bringing forth; soon recompensed with joy,
+Fruit of thy womb: On me the curse aslope
+Glanced on the ground; with labour I must earn
+My bread; what harm? Idleness had been worse;
+My labour will sustain me; and, lest cold
+Or heat should injure us, his timely care
+Hath, unbesought, provided; and his hands
+Clothed us unworthy, pitying while he judged;
+How much more, if we pray him, will his ear
+Be open, and his heart to pity incline,
+And teach us further by what means to shun
+The inclement seasons, rain, ice, hail, and snow!
+Which now the sky, with various face, begins
+To show us in this mountain; while the winds
+Blow moist and keen, shattering the graceful locks
+Of these fair spreading trees; which bids us seek
+Some better shroud, some better warmth to cherish
+Our limbs benummed, ere this diurnal star
+Leave cold the night, how we his gathered beams
+Reflected may with matter sere foment;
+Or, by collision of two bodies, grind
+The air attrite to fire; as late the clouds
+Justling, or pushed with winds, rude in their shock,
+Tine the slant lightning; whose thwart flame, driven down
+Kindles the gummy bark of fir or pine;
+And sends a comfortable heat from far,
+Which might supply the sun: Such fire to use,
+And what may else be remedy or cure
+To evils which our own misdeeds have wrought,
+He will instruct us praying, and of grace
+Beseeching him; so as we need not fear
+To pass commodiously this life, sustained
+By him with many comforts, till we end
+In dust, our final rest and native home.
+What better can we do, than, to the place
+Repairing where he judged us, prostrate fall
+Before him reverent; and there confess
+Humbly our faults, and pardon beg; with tears
+Watering the ground, and with our sighs the air
+Frequenting, sent from hearts contrite, in sign
+Of sorrow unfeigned, and humiliation meek
+
+
+
+Book XI
+
+
+Undoubtedly he will relent, and turn
+From his displeasure; in whose look serene,
+When angry most he seemed and most severe,
+What else but favour, grace, and mercy, shone?
+So spake our father penitent; nor Eve
+Felt less remorse: they, forthwith to the place
+Repairing where he judged them, prostrate fell
+Before him reverent; and both confessed
+Humbly their faults, and pardon begged; with tears
+Watering the ground, and with their sighs the air
+Frequenting, sent from hearts contrite, in sign
+Of sorrow unfeigned, and humiliation meek.
+Thus they, in lowliest plight, repentant stood
+Praying; for from the mercy-seat above
+Prevenient grace descending had removed
+The stony from their hearts, and made new flesh
+Regenerate grow instead; that sighs now breathed
+Unutterable; which the Spirit of prayer
+Inspired, and winged for Heaven with speedier flight
+Than loudest oratory: Yet their port
+Not of mean suitors; nor important less
+Seemed their petition, than when the ancient pair
+In fables old, less ancient yet than these,
+Deucalion and chaste Pyrrha, to restore
+The race of mankind drowned, before the shrine
+Of Themis stood devout. To Heaven their prayers
+Flew up, nor missed the way, by envious winds
+Blown vagabond or frustrate: in they passed
+Dimensionless through heavenly doors; then clad
+With incense, where the golden altar fumed,
+By their great intercessour, came in sight
+Before the Father's throne: them the glad Son
+Presenting, thus to intercede began.
+See$ Father, what first-fruits on earth are sprung
+From thy implanted grace in Man; these sighs
+And prayers, which in this golden censer mixed
+With incense, I thy priest before thee bring;
+Fruits of more pleasing savour, from thy seed
+Sown with contrition in his heart, than those
+Which, his own hand manuring, all the trees
+Of Paradise could have produced, ere fallen
+From innocence. Now therefore, bend thine ear
+To supplication; hear his sighs, though mute;
+Unskilful with what words to pray, let me
+Interpret for him; me, his advocate
+And propitiation; all his works on me,
+Good, or not good, ingraft; my merit those
+Shall perfect, and for these my death shall pay.
+Accept me; and, in me, from these receive
+The smell of peace toward mankind: let him live
+Before thee reconciled, at least his days
+Numbered, though sad; till death, his doom, (which I
+To mitigate thus plead, not to reverse,)
+To better life shall yield him: where with me
+All my redeemed may dwell in joy and bliss;
+Made one with me, as I with thee am one.
+To whom the Father, without cloud, serene.
+All thy request for Man, accepted Son,
+Obtain; all thy request was my decree:
+But, longer in that Paradise to dwell,
+The law I gave to Nature him forbids:
+Those pure immortal elements, that know,
+No gross, no unharmonious mixture foul,
+Eject him, tainted now; and purge him off,
+As a distemper, gross, to air as gross,
+And mortal food; as may dispose him best
+For dissolution wrought by sin, that first
+Distempered all things, and of incorrupt
+Corrupted. I, at first, with two fair gifts
+Created him endowed; with happiness,
+And immortality: that fondly lost,
+This other served but to eternize woe;
+Till I provided death: so death becomes
+His final remedy; and, after life,
+Tried in sharp tribulation, and refined
+By faith and faithful works, to second life,
+Waked in the renovation of the just,
+Resigns him up with Heaven and Earth renewed.
+But let us call to synod all the Blest,
+Through Heaven's wide bounds: from them I will not hide
+My judgements; how with mankind I proceed,
+As how with peccant Angels late they saw,
+And in their state, though firm, stood more confirmed.
+He ended, and the Son gave signal high
+To the bright minister that watched; he blew
+His trumpet, heard in Oreb since perhaps
+When God descended, and perhaps once more
+To sound at general doom. The angelick blast
+Filled all the regions: from their blisful bowers
+Of amarantine shade, fountain or spring,
+By the waters of life, where'er they sat
+In fellowships of joy, the sons of light
+Hasted, resorting to the summons high;
+And took their seats; till from his throne supreme
+The Almighty thus pronounced his sovran will.
+O Sons, like one of us Man is become
+To know both good and evil, since his taste
+Of that defended fruit; but let him boast
+His knowledge of good lost, and evil got;
+Happier! had it sufficed him to have known
+Good by itself, and evil not at all.
+He sorrows now, repents, and prays contrite,
+My motions in him; longer than they move,
+His heart I know, how variable and vain,
+Self-left. Lest therefore his now bolder hand
+Reach also of the tree of life, and eat,
+And live for ever, dream at least to live
+For ever, to remove him I decree,
+And send him from the garden forth to till
+The ground whence he was taken, fitter soil.
+Michael, this my behest have thou in charge;
+Take to thee from among the Cherubim
+Thy choice of flaming warriours, lest the Fiend,
+Or in behalf of Man, or to invade
+Vacant possession, some new trouble raise:
+Haste thee, and from the Paradise of God
+Without remorse drive out the sinful pair;
+From hallowed ground the unholy; and denounce
+To them, and to their progeny, from thence
+Perpetual banishment. Yet, lest they faint
+At the sad sentence rigorously urged,
+(For I behold them softened, and with tears
+Bewailing their excess,) all terrour hide.
+If patiently thy bidding they obey,
+Dismiss them not disconsolate; reveal
+To Adam what shall come in future days,
+As I shall thee enlighten; intermix
+My covenant in the Woman's seed renewed;
+So send them forth, though sorrowing, yet in peace:
+And on the east side of the garden place,
+Where entrance up from Eden easiest climbs,
+Cherubick watch; and of a sword the flame
+Wide-waving; all approach far off to fright,
+And guard all passage to the tree of life:
+Lest Paradise a receptacle prove
+To Spirits foul, and all my trees their prey;
+With whose stolen fruit Man once more to delude.
+He ceased; and the arch-angelick Power prepared
+For swift descent; with him the cohort bright
+Of watchful Cherubim: four faces each
+Had, like a double Janus; all their shape
+Spangled with eyes more numerous than those
+Of Argus, and more wakeful than to drouse,
+Charmed with Arcadian pipe, the pastoral reed
+Of Hermes, or his opiate rod. Mean while,
+To re-salute the world with sacred light,
+Leucothea waked; and with fresh dews imbalmed
+The earth; when Adam and first matron Eve
+Had ended now their orisons, and found
+Strength added from above; new hope to spring
+Out of despair; joy, but with fear yet linked;
+Which thus to Eve his welcome words renewed.
+Eve, easily my faith admit, that all
+The good which we enjoy from Heaven descends;
+But, that from us aught should ascend to Heaven
+So prevalent as to concern the mind
+Of God high-blest, or to incline his will,
+Hard to belief may seem; yet this will prayer
+Or one short sigh of human breath, upborne
+Even to the seat of God. For since I sought
+By prayer the offended Deity to appease;
+Kneeled, and before him humbled all my heart;
+Methought I saw him placable and mild,
+Bending his ear; persuasion in me grew
+That I was heard with favour; peace returned
+Home to my breast, and to my memory
+His promise, that thy seed shall bruise our foe;
+Which, then not minded in dismay, yet now
+Assures me that the bitterness of death
+Is past, and we shall live. Whence hail to thee,
+Eve rightly called, mother of all mankind,
+Mother of all things living, since by thee
+Man is to live; and all things live for Man.
+To whom thus Eve with sad demeanour meek.
+Ill-worthy I such title should belong
+To me transgressour; who, for thee ordained
+A help, became thy snare; to me reproach
+Rather belongs, distrust, and all dispraise:
+But infinite in pardon was my Judge,
+That I, who first brought death on all, am graced
+The source of life; next favourable thou,
+Who highly thus to entitle me vouchsaf'st,
+Far other name deserving. But the field
+To labour calls us, now with sweat imposed,
+Though after sleepless night; for see!the morn,
+All unconcerned with our unrest, begins
+Her rosy progress smiling: let us forth;
+I never from thy side henceforth to stray,
+Where'er our day's work lies, though now enjoined
+Laborious, till day droop; while here we dwell,
+What can be toilsome in these pleasant walks?
+Here let us live, though in fallen state, content.
+So spake, so wished much humbled Eve; but Fate
+Subscribed not: Nature first gave signs, impressed
+On bird, beast, air; air suddenly eclipsed,
+After short blush of morn; nigh in her sight
+The bird of Jove, stooped from his aery tour,
+Two birds of gayest plume before him drove;
+Down from a hill the beast that reigns in woods,
+First hunter then, pursued a gentle brace,
+Goodliest of all the forest, hart and hind;
+Direct to the eastern gate was bent their flight.
+Adam observed, and with his eye the chase
+Pursuing, not unmoved, to Eve thus spake.
+O Eve, some further change awaits us nigh,
+Which Heaven, by these mute signs in Nature, shows
+Forerunners of his purpose; or to warn
+Us, haply too secure, of our discharge
+From penalty, because from death released
+Some days: how long, and what till then our life,
+Who knows? or more than this, that we are dust,
+And thither must return, and be no more?
+Why else this double object in our sight
+Of flight pursued in the air, and o'er the ground,
+One way the self-same hour? why in the east
+Darkness ere day's mid-course, and morning-light
+More orient in yon western cloud, that draws
+O'er the blue firmament a radiant white,
+And slow descends with something heavenly fraught?
+He erred not; for by this the heavenly bands
+Down from a sky of jasper lighted now
+In Paradise, and on a hill made halt;
+A glorious apparition, had not doubt
+And carnal fear that day dimmed Adam's eye.
+Not that more glorious, when the Angels met
+Jacob in Mahanaim, where he saw
+The field pavilioned with his guardians bright;
+Nor that, which on the flaming mount appeared
+In Dothan, covered with a camp of fire,
+Against the Syrian king, who to surprise
+One man, assassin-like, had levied war,
+War unproclaimed. The princely Hierarch
+In their bright stand there left his Powers, to seise
+Possession of the garden; he alone,
+To find where Adam sheltered, took his way,
+Not unperceived of Adam; who to Eve,
+While the great visitant approached, thus spake.
+Eve$ now expect great tidings, which perhaps
+Of us will soon determine, or impose
+New laws to be observed; for I descry,
+From yonder blazing cloud that veils the hill,
+One of the heavenly host; and, by his gait,
+None of the meanest; some great Potentate
+Or of the Thrones above; such majesty
+Invests him coming! yet not terrible,
+That I should fear; nor sociably mild,
+As Raphael, that I should much confide;
+But solemn and sublime; whom not to offend,
+With reverence I must meet, and thou retire.
+He ended: and the Arch-Angel soon drew nigh,
+Not in his shape celestial, but as man
+Clad to meet man; over his lucid arms
+A military vest of purple flowed,
+Livelier than Meliboean, or the grain
+Of Sarra, worn by kings and heroes old
+In time of truce; Iris had dipt the woof;
+His starry helm unbuckled showed him prime
+In manhood where youth ended; by his side,
+As in a glistering zodiack, hung the sword,
+Satan's dire dread; and in his hand the spear.
+Adam bowed low; he, kingly, from his state
+Inclined not, but his coming thus declared.
+Adam, Heaven's high behest no preface needs:
+Sufficient that thy prayers are heard; and Death,
+Then due by sentence when thou didst transgress,
+Defeated of his seisure many days
+Given thee of grace; wherein thou mayest repent,
+And one bad act with many deeds well done
+Mayest cover: Well may then thy Lord, appeased,
+Redeem thee quite from Death's rapacious claim;
+But longer in this Paradise to dwell
+Permits not: to remove thee I am come,
+And send thee from the garden forth to till
+The ground whence thou wast taken, fitter soil.
+He added not; for Adam at the news
+Heart-struck with chilling gripe of sorrow stood,
+That all his senses bound; Eve, who unseen
+Yet all had heard, with audible lament
+Discovered soon the place of her retire.
+O unexpected stroke, worse than of Death!
+Must I thus leave thee$ Paradise? thus leave
+Thee, native soil! these happy walks and shades,
+Fit haunt of Gods? where I had hope to spend,
+Quiet though sad, the respite of that day
+That must be mortal to us both. O flowers,
+That never will in other climate grow,
+My early visitation, and my last
+ ;t even, which I bred up with tender hand
+From the first opening bud, and gave ye names!
+Who now shall rear ye to the sun, or rank
+Your tribes, and water from the ambrosial fount?
+Thee lastly, nuptial bower! by me adorned
+With what to sight or smell was sweet! from thee
+How shall I part, and whither wander down
+Into a lower world; to this obscure
+And wild? how shall we breathe in other air
+Less pure, accustomed to immortal fruits?
+Whom thus the Angel interrupted mild.
+Lament not, Eve, but patiently resign
+What justly thou hast lost, nor set thy heart,
+Thus over-fond, on that which is not thine:
+Thy going is not lonely; with thee goes
+Thy husband; whom to follow thou art bound;
+Where he abides, think there thy native soil.
+Adam, by this from the cold sudden damp
+Recovering, and his scattered spirits returned,
+To Michael thus his humble words addressed.
+Celestial, whether among the Thrones, or named
+Of them the highest; for such of shape may seem
+Prince above princes! gently hast thou told
+Thy message, which might else in telling wound,
+And in performing end us; what besides
+Of sorrow, and dejection, and despair,
+Our frailty can sustain, thy tidings bring,
+Departure from this happy place, our sweet
+Recess, and only consolation left
+Familiar to our eyes! all places else
+Inhospitable appear, and desolate;
+Nor knowing us, nor known: And, if by prayer
+Incessant I could hope to change the will
+Of Him who all things can, I would not cease
+To weary him with my assiduous cries:
+But prayer against his absolute decree
+No more avails than breath against the wind,
+Blown stifling back on him that breathes it forth:
+Therefore to his great bidding I submit.
+This most afflicts me, that, departing hence,
+As from his face I shall be hid, deprived
+His blessed countenance: Here I could frequent
+With worship place by place where he vouchsafed
+Presence Divine; and to my sons relate,
+'On this mount he appeared; under this tree
+'Stood visible; among these pines his voice
+'I heard; here with him at this fountain talked:
+So many grateful altars I would rear
+Of grassy turf, and pile up every stone
+Of lustre from the brook, in memory,
+Or monument to ages; and theron
+Offer sweet-smelling gums, and fruits, and flowers:
+In yonder nether world where shall I seek
+His bright appearances, or foot-step trace?
+For though I fled him angry, yet recalled
+To life prolonged and promised race, I now
+Gladly behold though but his utmost skirts
+Of glory; and far off his steps adore.
+To whom thus Michael with regard benign.
+Adam, thou knowest Heaven his, and all the Earth;
+Not this rock only; his Omnipresence fills
+Land, sea, and air, and every kind that lives,
+Fomented by his virtual power and warmed:
+All the earth he gave thee to possess and rule,
+No despicable gift; surmise not then
+His presence to these narrow bounds confined
+Of Paradise, or Eden: this had been
+Perhaps thy capital seat, from whence had spread
+All generations; and had hither come
+From all the ends of the earth, to celebrate
+And reverence thee, their great progenitor.
+But this pre-eminence thou hast lost, brought down
+To dwell on even ground now with thy sons:
+Yet doubt not but in valley, and in plain,
+God is, as here; and will be found alike
+Present; and of his presence many a sign
+Still following thee, still compassing thee round
+With goodness and paternal love, his face
+Express, and of his steps the track divine.
+Which that thou mayest believe, and be confirmed
+Ere thou from hence depart; know, I am sent
+To show thee what shall come in future days
+To thee, and to thy offspring: good with bad
+Expect to hear; supernal grace contending
+With sinfulness of men; thereby to learn
+True patience, and to temper joy with fear
+And pious sorrow; equally inured
+By moderation either state to bear,
+Prosperous or adverse: so shalt thou lead
+Safest thy life, and best prepared endure
+Thy mortal passage when it comes.--Ascend
+This hill; let Eve (for I have drenched her eyes)
+Here sleep below; while thou to foresight wakest;
+As once thou sleptst, while she to life was formed.
+To whom thus Adam gratefully replied.
+Ascend, I follow thee, safe Guide, the path
+Thou leadest me; and to the hand of Heaven submit,
+However chastening; to the evil turn
+My obvious breast; arming to overcome
+By suffering, and earn rest from labour won,
+If so I may attain. -- So both ascend
+In the visions of God. It was a hill,
+Of Paradise the highest; from whose top
+The hemisphere of earth, in clearest ken,
+Stretched out to the amplest reach of prospect lay.
+Not higher that hill, nor wider looking round,
+Whereon, for different cause, the Tempter set
+Our second Adam, in the wilderness;
+To show him all Earth's kingdoms, and their glory.
+His eye might there command wherever stood
+City of old or modern fame, the seat
+Of mightiest empire, from the destined walls
+Of Cambalu, seat of Cathaian Can,
+And Samarchand by Oxus, Temir's throne,
+To Paquin of Sinaean kings; and thence
+To Agra and Lahor of great Mogul,
+Down to the golden Chersonese; or where
+The Persian in Ecbatan sat, or since
+In Hispahan; or where the Russian Ksar
+In Mosco; or the Sultan in Bizance,
+Turchestan-born; nor could his eye not ken
+The empire of Negus to his utmost port
+Ercoco, and the less maritim kings
+Mombaza, and Quiloa, and Melind,
+And Sofala, thought Ophir, to the realm
+Of Congo, and Angola farthest south;
+Or thence from Niger flood to Atlas mount
+The kingdoms of Almansor, Fez and Sus,
+Morocco, and Algiers, and Tremisen;
+On Europe thence, and where Rome was to sway
+The world: in spirit perhaps he also saw
+Rich Mexico, the seat of Montezume,
+And Cusco in Peru, the richer seat
+Of Atabalipa; and yet unspoiled
+Guiana, whose great city Geryon's sons
+Call El Dorado. But to nobler sights
+Michael from Adam's eyes the film removed,
+Which that false fruit that promised clearer sight
+Had bred; then purged with euphrasy and rue
+The visual nerve, for he had much to see;
+And from the well of life three drops instilled.
+So deep the power of these ingredients pierced,
+Even to the inmost seat of mental sight,
+That Adam, now enforced to close his eyes,
+Sunk down, and all his spirits became entranced;
+But him the gentle Angel by the hand
+Soon raised, and his attention thus recalled.
+Adam, now ope thine eyes; and first behold
+The effects, which thy original crime hath wrought
+In some to spring from thee; who never touched
+The excepted tree; nor with the snake conspired;
+Nor sinned thy sin; yet from that sin derive
+Corruption, to bring forth more violent deeds.
+His eyes he opened, and beheld a field,
+Part arable and tilth, whereon were sheaves
+New reaped; the other part sheep-walks and folds;
+I' the midst an altar as the land-mark stood,
+Rustick, of grassy sord; thither anon
+A sweaty reaper from his tillage brought
+First fruits, the green ear, and the yellow sheaf,
+Unculled, as came to hand; a shepherd next,
+More meek, came with the firstlings of his flock,
+Choicest and best; then, sacrificing, laid
+The inwards and their fat, with incense strowed,
+On the cleft wood, and all due rights performed:
+His offering soon propitious fire from Heaven
+Consumed with nimble glance, and grateful steam;
+The other's not, for his was not sincere;
+Whereat he inly raged, and, as they talked,
+Smote him into the midriff with a stone
+That beat out life; he fell;and, deadly pale,
+Groaned out his soul with gushing blood effused.
+Much at that sight was Adam in his heart
+Dismayed, and thus in haste to the Angel cried.
+O Teacher, some great mischief hath befallen
+To that meek man, who well had sacrificed;
+Is piety thus and pure devotion paid?
+To whom Michael thus, he also moved, replied.
+These two are brethren, Adam, and to come
+Out of thy loins; the unjust the just hath slain,
+For envy that his brother's offering found
+From Heaven acceptance; but the bloody fact
+Will be avenged; and the other's faith, approved,
+Lose no reward; though here thou see him die,
+Rolling in dust and gore. To which our sire.
+Alas! both for the deed, and for the cause!
+But have I now seen Death? Is this the way
+I must return to native dust? O sight
+Of terrour, foul and ugly to behold,
+Horrid to think, how horrible to feel!
+To whom thus Michael. Death thou hast seen
+In his first shape on Man; but many shapes
+Of Death, and many are the ways that lead
+To his grim cave, all dismal; yet to sense
+More terrible at the entrance, than within.
+Some, as thou sawest, by violent stroke shall die;
+By fire, flood, famine, by intemperance more
+In meats and drinks, which on the earth shall bring
+Diseases dire, of which a monstrous crew
+Before thee shall appear; that thou mayest know
+What misery the inabstinence of Eve
+Shall bring on Men. Immediately a place
+Before his eyes appeared, sad, noisome, dark;
+A lazar-house it seemed; wherein were laid
+Numbers of all diseased; all maladies
+Of ghastly spasm, or racking torture, qualms
+Of heart-sick agony, all feverous kinds,
+Convulsions, epilepsies, fierce catarrhs,
+Intestine stone and ulcer, colick-pangs,
+Demoniack phrenzy, moaping melancholy,
+And moon-struck madness, pining atrophy,
+Marasmus, and wide-wasting pestilence,
+Dropsies, and asthmas, and joint-racking rheums.
+Dire was the tossing, deep the groans; Despair
+Tended the sick busiest from couch to couch;
+And over them triumphant Death his dart
+Shook, but delayed to strike, though oft invoked
+With vows, as their chief good, and final hope.
+Sight so deform what heart of rock could long
+Dry-eyed behold? Adam could not, but wept,
+Though not of woman born; compassion quelled
+His best of man, and gave him up to tears
+A space, till firmer thoughts restrained excess;
+And, scarce recovering words, his plaint renewed.
+O miserable mankind, to what fall
+Degraded, to what wretched state reserved!
+Better end here unborn. Why is life given
+To be thus wrested from us? rather, why
+Obtruded on us thus? who, if we knew
+What we receive, would either no accept
+Life offered, or soon beg to lay it down;
+Glad to be so dismissed in peace. Can thus
+The image of God in Man, created once
+So goodly and erect, though faulty since,
+To such unsightly sufferings be debased
+Under inhuman pains? Why should not Man,
+Retaining still divine similitude
+In part, from such deformities be free,
+And, for his Maker's image sake, exempt?
+Their Maker's image, answered Michael, then
+Forsook them, when themselves they vilified
+To serve ungoverned Appetite; and took
+His image whom they served, a brutish vice,
+Inductive mainly to the sin of Eve.
+Therefore so abject is their punishment,
+Disfiguring not God's likeness, but their own;
+Or if his likeness, by themselves defaced;
+While they pervert pure Nature's healthful rules
+To loathsome sickness; worthily, since they
+God's image did not reverence in themselves.
+I yield it just, said Adam, and submit.
+But is there yet no other way, besides
+These painful passages, how we may come
+To death, and mix with our connatural dust?
+There is, said Michael, if thou well observe
+The rule of Not too much; by temperance taught,
+In what thou eatest and drinkest; seeking from thence
+Due nourishment, not gluttonous delight,
+Till many years over thy head return:
+So mayest thou live; till, like ripe fruit, thou drop
+Into thy mother's lap; or be with ease
+Gathered, nor harshly plucked; for death mature:
+This is Old Age; but then, thou must outlive
+Thy youth, thy strength, thy beauty; which will change
+To withered, weak, and gray; thy senses then,
+Obtuse, all taste of pleasure must forego,
+To what thou hast; and, for the air of youth,
+Hopeful and cheerful, in thy blood will reign
+A melancholy damp of cold and dry
+To weigh thy spirits down, and last consume
+The balm of life. To whom our ancestor.
+Henceforth I fly not death, nor would prolong
+Life much; bent rather, how I may be quit,
+Fairest and easiest, of this cumbrous charge;
+Which I must keep till my appointed day
+Of rendering up, and patiently attend
+My dissolution. Michael replied.
+Nor love thy life, nor hate; but what thou livest
+Live well; how long, or short, permit to Heaven:
+And now prepare thee for another sight.
+He looked, and saw a spacious plain, whereon
+Were tents of various hue; by some, were herds
+Of cattle grazing; others, whence the sound
+Of instruments, that made melodious chime,
+Was heard, of harp and organ; and, who moved
+Their stops and chords, was seen; his volant touch,
+Instinct through all proportions, low and high,
+Fled and pursued transverse the resonant fugue.
+In other part stood one who, at the forge
+Labouring, two massy clods of iron and brass
+Had melted, (whether found where casual fire
+Had wasted woods on mountain or in vale,
+Down to the veins of earth; thence gliding hot
+To some cave's mouth; or whether washed by stream
+From underground;) the liquid ore he drained
+Into fit moulds prepared; from which he formed
+First his own tools; then, what might else be wrought
+Fusil or graven in metal. After these,
+But on the hither side, a different sort
+From the high neighbouring hills, which was their seat,
+Down to the plain descended; by their guise
+Just men they seemed, and all their study bent
+To worship God aright, and know his works
+Not hid; nor those things last, which might preserve
+Freedom and peace to Men; they on the plain
+Long had not walked, when from the tents, behold!
+A bevy of fair women, richly gay
+In gems and wanton dress; to the harp they sung
+Soft amorous ditties, and in dance came on:
+The men, though grave, eyed them; and let their eyes
+Rove without rein; till, in the amorous net
+Fast caught, they liked; and each his liking chose;
+And now of love they treat, till the evening-star,
+Love's harbinger, appeared; then, all in heat
+They light the nuptial torch, and bid invoke
+Hymen, then first to marriage rites invoked:
+With feast and musick all the tents resound.
+Such happy interview, and fair event
+Of love and youth not lost, songs, garlands, flowers,
+And charming symphonies, attached the heart
+Of Adam, soon inclined to admit delight,
+The bent of nature; which he thus expressed.
+True opener of mine eyes, prime Angel blest;
+Much better seems this vision, and more hope
+Of peaceful days portends, than those two past;
+Those were of hate and death, or pain much worse;
+Here Nature seems fulfilled in all her ends.
+To whom thus Michael. Judge not what is best
+By pleasure, though to nature seeming meet;
+Created, as thou art, to nobler end
+Holy and pure, conformity divine.
+Those tents thou sawest so pleasant, were the tents
+Of wickedness, wherein shall dwell his race
+Who slew his brother; studious they appear
+Of arts that polish life, inventers rare;
+Unmindful of their Maker, though his Spirit
+Taught them; but they his gifts acknowledged none.
+Yet they a beauteous offspring shall beget;
+For that fair female troop thou sawest, that seemed
+Of Goddesses, so blithe, so smooth, so gay,
+Yet empty of all good wherein consists
+Woman's domestick honour and chief praise;
+Bred only and completed to the taste
+Of lustful appetence, to sing, to dance,
+To dress, and troll the tongue, and roll the eye:
+To these that sober race of men, whose lives
+Religious titled them the sons of God,
+Shall yield up all their virtue, all their fame
+Ignobly, to the trains and to the smiles
+Of these fair atheists; and now swim in joy,
+Erelong to swim at large; and laugh, for which
+The world erelong a world of tears must weep.
+To whom thus Adam, of short joy bereft.
+O pity and shame, that they, who to live well
+Entered so fair, should turn aside to tread
+Paths indirect, or in the mid way faint!
+But still I see the tenour of Man's woe
+Holds on the same, from Woman to begin.
+From Man's effeminate slackness it begins,
+Said the Angel, who should better hold his place
+By wisdom, and superiour gifts received.
+But now prepare thee for another scene.
+He looked, and saw wide territory spread
+Before him, towns, and rural works between;
+Cities of men with lofty gates and towers,
+Concourse in arms, fierce faces threatening war,
+Giants of mighty bone and bold emprise;
+Part wield their arms, part curb the foaming steed,
+Single or in array of battle ranged
+Both horse and foot, nor idly mustering stood;
+One way a band select from forage drives
+A herd of beeves, fair oxen and fair kine,
+From a fat meadow ground; or fleecy flock,
+Ewes and their bleating lambs over the plain,
+Their booty; scarce with life the shepherds fly,
+But call in aid, which makes a bloody fray;
+With cruel tournament the squadrons join;
+Where cattle pastured late, now scattered lies
+With carcasses and arms the ensanguined field,
+Deserted: Others to a city strong
+Lay siege, encamped; by battery, scale, and mine,
+Assaulting; others from the wall defend
+With dart and javelin, stones, and sulphurous fire;
+On each hand slaughter, and gigantick deeds.
+In other part the sceptered heralds call
+To council, in the city-gates; anon
+Gray-headed men and grave, with warriours mixed,
+Assemble, and harangues are heard; but soon,
+In factious opposition; till at last,
+Of middle age one rising, eminent
+In wise deport, spake much of right and wrong,
+Of justice, or religion, truth, and peace,
+And judgement from above: him old and young
+Exploded, and had seized with violent hands,
+Had not a cloud descending snatched him thence
+Unseen amid the throng: so violence
+Proceeded, and oppression, and sword-law,
+Through all the plain, and refuge none was found.
+Adam was all in tears, and to his guide
+Lamenting turned full sad; O!what are these,
+Death's ministers, not men? who thus deal death
+Inhumanly to men, and multiply
+Ten thousandfold the sin of him who slew
+His brother: for of whom such massacre
+Make they, but of their brethren; men of men
+But who was that just man, whom had not Heaven
+Rescued, had in his righteousness been lost?
+To whom thus Michael. These are the product
+Of those ill-mated marriages thou sawest;
+Where good with bad were matched, who of themselves
+Abhor to join; and, by imprudence mixed,
+Produce prodigious births of body or mind.
+Such were these giants, men of high renown;
+For in those days might only shall be admired,
+And valour and heroick virtue called;
+To overcome in battle, and subdue
+Nations, and bring home spoils with infinite
+Man-slaughter, shall be held the highest pitch
+Of human glory; and for glory done
+Of triumph, to be styled great conquerours
+Patrons of mankind, Gods, and sons of Gods;
+Destroyers rightlier called, and plagues of men.
+Thus fame shall be achieved, renown on earth;
+And what most merits fame, in silence hid.
+But he, the seventh from thee, whom thou beheldst
+The only righteous in a world preverse,
+And therefore hated, therefore so beset
+With foes, for daring single to be just,
+And utter odious truth, that God would come
+To judge them with his Saints; him the Most High
+Rapt in a balmy cloud with winged steeds
+Did, as thou sawest, receive, to walk with God
+High in salvation and the climes of bliss,
+Exempt from death; to show thee what reward
+Awaits the good; the rest what punishment;
+Which now direct thine eyes and soon behold.
+He looked, and saw the face of things quite changed;
+The brazen throat of war had ceased to roar;
+All now was turned to jollity and game,
+To luxury and riot, feast and dance;
+Marrying or prostituting, as befel,
+Rape or adultery, where passing fair
+Allured them; thence from cups to civil broils.
+At length a reverend sire among them came,
+And of their doings great dislike declared,
+And testified against their ways; he oft
+Frequented their assemblies, whereso met,
+Triumphs or festivals; and to them preached
+Conversion and repentance, as to souls
+In prison, under judgements imminent:
+But all in vain: which when he saw, he ceased
+Contending, and removed his tents far off;
+Then, from the mountain hewing timber tall,
+Began to build a vessel of huge bulk;
+Measured by cubit, length, and breadth, and highth;
+Smeared round with pitch; and in the side a door
+Contrived; and of provisions laid in large,
+For man and beast: when lo, a wonder strange!
+Of every beast, and bird, and insect small,
+Came sevens, and pairs; and entered in as taught
+Their order: last the sire and his three sons,
+With their four wives; and God made fast the door.
+Mean while the south-wind rose, and, with black wings
+Wide-hovering, all the clouds together drove
+From under Heaven; the hills to their supply
+Vapour, and exhalation dusk and moist,
+Sent up amain; and now the thickened sky
+Like a dark cieling stood; down rushed the rain
+Impetuous; and continued, till the earth
+No more was seen: the floating vessel swum
+Uplifted, and secure with beaked prow
+Rode tilting o'er the waves; all dwellings else
+Flood overwhelmed, and them with all their pomp
+Deep under water rolled; sea covered sea,
+Sea without shore; and in their palaces,
+Where luxury late reigned, sea-monsters whelped
+And stabled; of mankind, so numerous late,
+All left, in one small bottom swum imbarked.
+How didst thou grieve then, Adam, to behold
+The end of all thy offspring, end so sad,
+Depopulation! Thee another flood,
+Of tears and sorrow a flood, thee also drowned,
+And sunk thee as thy sons; till, gently reared
+By the Angel, on thy feet thou stoodest at last,
+Though comfortless; as when a father mourns
+His children, all in view destroyed at once;
+And scarce to the Angel utter'dst thus thy plaint.
+O visions ill foreseen! Better had I
+Lived ignorant of future! so had borne
+My part of evil only, each day's lot
+Enough to bear; those now, that were dispensed
+The burden of many ages, on me light
+At once, by my foreknowledge gaining birth
+Abortive, to torment me ere their being,
+With thought that they must be. Let no man seek
+Henceforth to be foretold, what shall befall
+Him or his children; evil he may be sure,
+Which neither his foreknowing can prevent;
+And he the future evil shall no less
+In apprehension than in substance feel,
+Grievous to bear: but that care now is past,
+Man is not whom to warn: those few escaped
+Famine and anguish will at last consume,
+Wandering that watery desart: I had hope,
+When violence was ceased, and war on earth,
+All would have then gone well; peace would have crowned
+With length of happy days the race of Man;
+But I was far deceived; for now I see
+Peace to corrupt no less than war to waste.
+How comes it thus? unfold, celestial Guide,
+And whether here the race of Man will end.
+To whom thus Michael. Those, whom last thou sawest
+In triumph and luxurious wealth, are they
+First seen in acts of prowess eminent
+And great exploits, but of true virtue void;
+Who, having spilt much blood, and done much wast
+Subduing nations, and achieved thereby
+Fame in the world, high titles, and rich prey;
+Shall change their course to pleasure, ease, and sloth,
+Surfeit, and lust; till wantonness and pride
+Raise out of friendship hostile deeds in peace.
+The conquered also, and enslaved by war,
+Shall, with their freedom lost, all virtue lose
+And fear of God; from whom their piety feigned
+In sharp contest of battle found no aid
+Against invaders; therefore, cooled in zeal,
+Thenceforth shall practice how to live secure,
+Worldly or dissolute, on what their lords
+Shall leave them to enjoy; for the earth shall bear
+More than enough, that temperance may be tried:
+So all shall turn degenerate, all depraved;
+Justice and temperance, truth and faith, forgot;
+One man except, the only son of light
+In a dark age, against example good,
+Against allurement, custom, and a world
+Offended: fearless of reproach and scorn,
+The grand-child, with twelve sons encreased, departs
+From Canaan, to a land hereafter called
+Egypt, divided by the river Nile;
+See where it flows, disgorging at seven mouths
+Into the sea: To sojourn in that land
+He comes, invited by a younger son
+In time of dearth; a son, whose worthy deeds
+Raise him to be the second in that realm
+Of Pharaoh: There he dies, and leaves his race
+Growing into a nation, and now grown
+Suspected to a sequent king, who seeks
+To stop their overgrowth, as inmate guests
+Or violence, he of their wicked ways
+Shall them admonish; and before them set
+The paths of righteousness, how much more safe
+And full of peace; denouncing wrath to come
+On their impenitence; and shall return
+Of them derided, but of God observed
+The one just man alive; by his command
+Shall build a wonderous ark, as thou beheldst,
+To save himself, and houshold, from amidst
+A world devote to universal wrack.
+No sooner he, with them of man and beast
+Select for life, shall in the ark be lodged,
+And sheltered round; but all the cataracts
+Of Heaven set open on the Earth shall pour
+Rain, day and night; all fountains of the deep,
+Broke up, shall heave the ocean to usurp
+Beyond all bounds; till inundation rise
+Above the highest hills: Then shall this mount
+Of Paradise by might of waves be moved
+Out of his place, pushed by the horned flood,
+With all his verdure spoiled, and trees adrift,
+Down the great river to the opening gulf,
+And there take root an island salt and bare,
+The haunt of seals, and orcs, and sea-mews' clang:
+To teach thee that God attributes to place
+No sanctity, if none be thither brought
+By men who there frequent, or therein dwell.
+And now, what further shall ensue, behold.
+He looked, and saw the ark hull on the flood,
+Which now abated; for the clouds were fled,
+Driven by a keen north-wind, that, blowing dry,
+Wrinkled the face of deluge, as decayed;
+And the clear sun on his wide watery glass
+Gazed hot, and of the fresh wave largely drew,
+As after thirst; which made their flowing shrink
+From standing lake to tripping ebb, that stole
+With soft foot towards the deep; who now had stopt
+His sluces, as the Heaven his windows shut.
+The ark no more now floats, but seems on ground,
+Fast on the top of some high mountain fixed.
+And now the tops of hills, as rocks, appear;
+With clamour thence the rapid currents drive,
+Towards the retreating sea, their furious tide.
+Forthwith from out the ark a raven flies,
+And after him, the surer messenger,
+A dove sent forth once and again to spy
+Green tree or ground, whereon his foot may light:
+The second time returning, in his bill
+An olive-leaf he brings, pacifick sign:
+Anon dry ground appears, and from his ark
+The ancient sire descends, with all his train;
+Then with uplifted hands, and eyes devout,
+Grateful to Heaven, over his head beholds
+A dewy cloud, and in the cloud a bow
+Conspicuous with three lifted colours gay,
+Betokening peace from God, and covenant new.
+Whereat the heart of Adam, erst so sad,
+Greatly rejoiced; and thus his joy broke forth.
+O thou, who future things canst represent
+As present, heavenly Instructer! I revive
+At this last sight; assured that Man shall live,
+With all the creatures, and their seed preserve.
+Far less I now lament for one whole world
+Of wicked sons destroyed, than I rejoice
+For one man found so perfect, and so just,
+That God vouchsafes to raise another world
+From him, and all his anger to forget.
+But say, what mean those coloured streaks in Heaven
+Distended, as the brow of God appeased?
+Or serve they, as a flowery verge, to bind
+The fluid skirts of that same watery cloud,
+Lest it again dissolve, and shower the earth?
+To whom the Arch-Angel. Dextrously thou aimest;
+So willingly doth God remit his ire,
+Though late repenting him of Man depraved;
+Grieved at his heart, when looking down he saw
+The whole earth filled with violence, and all flesh
+Corrupting each their way; yet, those removed,
+Such grace shall one just man find in his sight,
+That he relents, not to blot out mankind;
+And makes a covenant never to destroy
+The earth again by flood; nor let the sea
+Surpass his bounds; nor rain to drown the world,
+With man therein or beast; but, when he brings
+Over the earth a cloud, will therein set
+His triple-coloured bow, whereon to look,
+And call to mind his covenant: Day and night,
+Seed-time and harvest, heat and hoary frost,
+Shall hold their course; till fire purge all things new,
+Both Heaven and Earth, wherein the just shall dwell.
+
+
+
+Book XII
+
+
+As one who in his journey bates at noon,
+Though bent on speed; so here the Arch-Angel paused
+Betwixt the world destroyed and world restored,
+If Adam aught perhaps might interpose;
+Then, with transition sweet, new speech resumes.
+Thus thou hast seen one world begin, and end;
+And Man, as from a second stock, proceed.
+Much thou hast yet to see; but I perceive
+Thy mortal sight to fail; objects divine
+Must needs impair and weary human sense:
+Henceforth what is to come I will relate;
+Thou therefore give due audience, and attend.
+This second source of Men, while yet but few,
+And while the dread of judgement past remains
+Fresh in their minds, fearing the Deity,
+With some regard to what is just and right
+Shall lead their lives, and multiply apace;
+Labouring the soil, and reaping plenteous crop,
+Corn, wine, and oil; and, from the herd or flock,
+Oft sacrificing bullock, lamb, or kid,
+With large wine-offerings poured, and sacred feast,
+Shall spend their days in joy unblamed; and dwell
+Long time in peace, by families and tribes,
+Under paternal rule: till one shall rise
+Of proud ambitious heart; who, not content
+With fair equality, fraternal state,
+Will arrogate dominion undeserved
+Over his brethren, and quite dispossess
+Concord and law of nature from the earth;
+Hunting (and men not beasts shall be his game)
+With war, and hostile snare, such as refuse
+Subjection to his empire tyrannous:
+A mighty hunter thence he shall be styled
+Before the Lord; as in despite of Heaven,
+Or from Heaven, claiming second sovranty;
+And from rebellion shall derive his name,
+Though of rebellion others he accuse.
+He with a crew, whom like ambition joins
+With him or under him to tyrannize,
+Marching from Eden towards the west, shall find
+The plain, wherein a black bituminous gurge
+Boils out from under ground, the mouth of Hell:
+Of brick, and of that stuff, they cast to build
+A city and tower, whose top may reach to Heaven;
+And get themselves a name; lest, far dispersed
+In foreign lands, their memory be lost;
+Regardless whether good or evil fame.
+But God, who oft descends to visit men
+Unseen, and through their habitations walks
+To mark their doings, them beholding soon,
+Comes down to see their city, ere the tower
+Obstruct Heaven-towers, and in derision sets
+Upon their tongues a various spirit, to rase
+Quite out their native language; and, instead,
+To sow a jangling noise of words unknown:
+Forthwith a hideous gabble rises loud,
+Among the builders; each to other calls
+Not understood; till hoarse, and all in rage,
+As mocked they storm: great laughter was in Heaven,
+And looking down, to see the hubbub strange,
+And hear the din: Thus was the building left
+Ridiculous, and the work Confusion named.
+Whereto thus Adam, fatherly displeased.
+O execrable son! so to aspire
+Above his brethren; to himself assuming
+Authority usurped, from God not given:
+He gave us only over beast, fish, fowl,
+Dominion absolute; that right we hold
+By his donation; but man over men
+He made not lord; such title to himself
+Reserving, human left from human free.
+But this usurper his encroachment proud
+Stays not on Man; to God his tower intends
+Siege and defiance: Wretched man!what food
+Will he convey up thither, to sustain
+Himself and his rash army; where thin air
+Above the clouds will pine his entrails gross,
+And famish him of breath, if not of bread?
+To whom thus Michael. Justly thou abhorrest
+That son, who on the quiet state of men
+Such trouble brought, affecting to subdue
+Rational liberty; yet know withal,
+Since thy original lapse, true liberty
+Is lost, which always with right reason dwells
+Twinned, and from her hath no dividual being:
+Reason in man obscured, or not obeyed,
+Immediately inordinate desires,
+And upstart passions, catch the government
+From reason; and to servitude reduce
+Man, till then free. Therefore, since he permits
+Within himself unworthy powers to reign
+Over free reason, God, in judgement just,
+Subjects him from without to violent lords;
+Who oft as undeservedly enthrall
+His outward freedom: Tyranny must be;
+Though to the tyrant thereby no excuse.
+Yet sometimes nations will decline so low
+From virtue, which is reason, that no wrong,
+But justice, and some fatal curse annexed,
+Deprives them of their outward liberty;
+Their inward lost: Witness the irreverent son
+Of him who built the ark; who, for the shame
+Done to his father, heard this heavy curse,
+Servant of servants, on his vicious race.
+Thus will this latter, as the former world,
+Still tend from bad to worse; till God at last,
+Wearied with their iniquities, withdraw
+His presence from among them, and avert
+His holy eyes; resolving from thenceforth
+To leave them to their own polluted ways;
+And one peculiar nation to select
+From all the rest, of whom to be invoked,
+A nation from one faithful man to spring:
+Him on this side Euphrates yet residing,
+Bred up in idol-worship: O, that men
+(Canst thou believe?) should be so stupid grown,
+While yet the patriarch lived, who 'scaped the flood,
+As to forsake the living God, and fall
+To worship their own work in wood and stone
+For Gods! Yet him God the Most High vouchsafes
+To call by vision, from his father's house,
+His kindred, and false Gods, into a land
+Which he will show him; and from him will raise
+A mighty nation; and upon him shower
+His benediction so, that in his seed
+All nations shall be blest: he straight obeys;
+Not knowing to what land, yet firm believes:
+I see him, but thou canst not, with what faith
+He leaves his Gods, his friends, and native soil,
+Ur of Chaldaea, passing now the ford
+To Haran; after him a cumbrous train
+Of herds and flocks, and numerous servitude;
+Not wandering poor, but trusting all his wealth
+With God, who called him, in a land unknown.
+Canaan he now attains; I see his tents
+Pitched about Sechem, and the neighbouring plain
+Of Moreh; there by promise he receives
+Gift to his progeny of all that land,
+From Hameth northward to the Desart south;
+(Things by their names I call, though yet unnamed;)
+From Hermon east to the great western Sea;
+Mount Hermon, yonder sea; each place behold
+In prospect, as I point them; on the shore
+Mount Carmel; here, the double-founted stream,
+Jordan, true limit eastward; but his sons
+Shall dwell to Senir, that long ridge of hills.
+This ponder, that all nations of the earth
+Shall in his seed be blessed: By that seed
+Is meant thy great Deliverer, who shall bruise
+The Serpent's head; whereof to thee anon
+Plainlier shall be revealed. This patriarch blest,
+Whom faithful Abraham due time shall call,
+A son, and of his son a grand-child, leaves;
+Like him in faith, in wisdom, and renown:
+The grandchild, with twelve sons increased, departs
+From Canaan to a land hereafter called
+Egypt, divided by the river Nile
+See where it flows, disgorging at seven mouths
+Into the sea. To sojourn in that land
+He comes, invited by a younger son
+In time of dearth, a son whose worthy deeds
+Raise him to be the second in that realm
+Of Pharaoh. There he dies, and leaves his race
+Growing into a nation, and now grown
+Suspected to a sequent king, who seeks
+To stop their overgrowth, as inmate guests
+Too numerous; whence of guests he makes them slaves
+Inhospitably, and kills their infant males:
+Till by two brethren (these two brethren call
+Moses and Aaron) sent from God to claim
+His people from enthralment, they return,
+With glory and spoil, back to their promised land.
+But first, the lawless tyrant, who denies
+To know their God, or message to regard,
+Must be compelled by signs and judgements dire;
+To blood unshed the rivers must be turned;
+Frogs, lice, and flies, must all his palace fill
+With loathed intrusion, and fill all the land;
+His cattle must of rot and murren die;
+Botches and blains must all his flesh emboss,
+And all his people; thunder mixed with hail,
+Hail mixed with fire, must rend the Egyptians sky,
+And wheel on the earth, devouring where it rolls;
+What it devours not, herb, or fruit, or grain,
+A darksome cloud of locusts swarming down
+Must eat, and on the ground leave nothing green;
+Darkness must overshadow all his bounds,
+Palpable darkness, and blot out three days;
+Last, with one midnight stroke, all the first-born
+Of Egypt must lie dead. Thus with ten wounds
+The river-dragon tamed at length submits
+To let his sojourners depart, and oft
+Humbles his stubborn heart; but still, as ice
+More hardened after thaw; till, in his rage
+Pursuing whom he late dismissed, the sea
+Swallows him with his host; but them lets pass,
+As on dry land, between two crystal walls;
+Awed by the rod of Moses so to stand
+Divided, till his rescued gain their shore:
+Such wondrous power God to his saint will lend,
+Though present in his Angel; who shall go
+Before them in a cloud, and pillar of fire;
+By day a cloud, by night a pillar of fire;
+To guide them in their journey, and remove
+Behind them, while the obdurate king pursues:
+All night he will pursue; but his approach
+Darkness defends between till morning watch;
+Then through the fiery pillar, and the cloud,
+God looking forth will trouble all his host,
+And craze their chariot-wheels: when by command
+Moses once more his potent rod extends
+Over the sea; the sea his rod obeys;
+On their embattled ranks the waves return,
+And overwhelm their war: The race elect
+Safe toward Canaan from the shore advance
+Through the wild Desart, not the readiest way;
+Lest, entering on the Canaanite alarmed,
+War terrify them inexpert, and fear
+Return them back to Egypt, choosing rather
+Inglorious life with servitude; for life
+To noble and ignoble is more sweet
+Untrained in arms, where rashness leads not on.
+This also shall they gain by their delay
+In the wide wilderness; there they shall found
+Their government, and their great senate choose
+Through the twelve tribes, to rule by laws ordained:
+God from the mount of Sinai, whose gray top
+Shall tremble, he descending, will himself
+In thunder, lightning, and loud trumpets' sound,
+Ordain them laws; part, such as appertain
+To civil justice; part, religious rites
+Of sacrifice; informing them, by types
+And shadows, of that destined Seed to bruise
+The Serpent, by what means he shall achieve
+Mankind's deliverance. But the voice of God
+To mortal ear is dreadful: They beseech
+That Moses might report to them his will,
+And terrour cease; he grants what they besought,
+Instructed that to God is no access
+Without Mediator, whose high office now
+Moses in figure bears; to introduce
+One greater, of whose day he shall foretel,
+And all the Prophets in their age the times
+Of great Messiah shall sing. Thus, laws and rites
+Established, such delight hath God in Men
+Obedient to his will, that he vouchsafes
+Among them to set up his tabernacle;
+The Holy One with mortal Men to dwell:
+By his prescript a sanctuary is framed
+Of cedar, overlaid with gold; therein
+An ark, and in the ark his testimony,
+The records of his covenant; over these
+A mercy-seat of gold, between the wings
+Of two bright Cherubim; before him burn
+Seven lamps as in a zodiack representing
+The heavenly fires; over the tent a cloud
+Shall rest by day, a fiery gleam by night;
+Save when they journey, and at length they come,
+Conducted by his Angel, to the land
+Promised to Abraham and his seed:--The rest
+Were long to tell; how many battles fought
+How many kings destroyed; and kingdoms won;
+Or how the sun shall in mid Heaven stand still
+A day entire, and night's due course adjourn,
+Man's voice commanding, 'Sun, in Gibeon stand,
+'And thou moon in the vale of Aialon,
+'Till Israel overcome! so call the third
+From Abraham, son of Isaac; and from him
+His whole descent, who thus shall Canaan win.
+Here Adam interposed. O sent from Heaven,
+Enlightener of my darkness, gracious things
+Thou hast revealed; those chiefly, which concern
+Just Abraham and his seed: now first I find
+Mine eyes true-opening, and my heart much eased;
+Erewhile perplexed with thoughts, what would become
+Of me and all mankind: But now I see
+His day, in whom all nations shall be blest;
+Favour unmerited by me, who sought
+Forbidden knowledge by forbidden means.
+This yet I apprehend not, why to those
+Among whom God will deign to dwell on earth
+So many and so various laws are given;
+So many laws argue so many sins
+Among them; how can God with such reside?
+To whom thus Michael. Doubt not but that sin
+Will reign among them, as of thee begot;
+And therefore was law given them, to evince
+Their natural pravity, by stirring up
+Sin against law to fight: that when they see
+Law can discover sin, but not remove,
+Save by those shadowy expiations weak,
+The blood of bulls and goats, they may conclude
+Some blood more precious must be paid for Man;
+Just for unjust; that, in such righteousness
+To them by faith imputed, they may find
+Justification towards God, and peace
+Of conscience; which the law by ceremonies
+Cannot appease; nor Man the mortal part
+Perform; and, not performing, cannot live.
+So law appears imperfect; and but given
+With purpose to resign them, in full time,
+Up to a better covenant; disciplined
+From shadowy types to truth; from flesh to spirit;
+From imposition of strict laws to free
+Acceptance of large grace; from servile fear
+To filial; works of law to works of faith.
+And therefore shall not Moses, though of God
+Highly beloved, being but the minister
+Of law, his people into Canaan lead;
+But Joshua, whom the Gentiles Jesus call,
+His name and office bearing, who shall quell
+The adversary-Serpent, and bring back
+Through the world's wilderness long-wandered Man
+Safe to eternal Paradise of rest.
+Mean while they, in their earthly Canaan placed,
+Long time shall dwell and prosper, but when sins
+National interrupt their publick peace,
+Provoking God to raise them enemies;
+From whom as oft he saves them penitent
+By Judges first, then under Kings; of whom
+The second, both for piety renowned
+And puissant deeds, a promise shall receive
+Irrevocable, that his regal throne
+For ever shall endure; the like shall sing
+All Prophecy, that of the royal stock
+Of David (so I name this king) shall rise
+A Son, the Woman's seed to thee foretold,
+Foretold to Abraham, as in whom shall trust
+All nations; and to kings foretold, of kings
+The last; for of his reign shall be no end.
+But first, a long succession must ensue;
+And his next son, for wealth and wisdom famed,
+The clouded ark of God, till then in tents
+Wandering, shall in a glorious temple enshrine.
+Such follow him, as shall be registered
+Part good, part bad; of bad the longer scroll;
+Whose foul idolatries, and other faults
+Heaped to the popular sum, will so incense
+God, as to leave them, and expose their land,
+Their city, his temple, and his holy ark,
+With all his sacred things, a scorn and prey
+To that proud city, whose high walls thou sawest
+Left in confusion; Babylon thence called.
+There in captivity he lets them dwell
+The space of seventy years; then brings them back,
+Remembering mercy, and his covenant sworn
+To David, stablished as the days of Heaven.
+Returned from Babylon by leave of kings
+Their lords, whom God disposed, the house of God
+They first re-edify; and for a while
+In mean estate live moderate; till, grown
+In wealth and multitude, factious they grow;
+But first among the priests dissention springs,
+Men who attend the altar, and should most
+Endeavour peace: their strife pollution brings
+Upon the temple itself: at last they seise
+The scepter, and regard not David's sons;
+Then lose it to a stranger, that the true
+Anointed King Messiah might be born
+Barred of his right; yet at his birth a star,
+Unseen before in Heaven, proclaims him come;
+And guides the eastern sages, who inquire
+His place, to offer incense, myrrh, and gold:
+His place of birth a solemn Angel tells
+To simple shepherds, keeping watch by night;
+They gladly thither haste, and by a quire
+Of squadroned Angels hear his carol sung.
+A virgin is his mother, but his sire
+The power of the Most High: He shall ascend
+The throne hereditary, and bound his reign
+With Earth's wide bounds, his glory with the Heavens.
+He ceased, discerning Adam with such joy
+Surcharged, as had like grief been dewed in tears,
+Without the vent of words; which these he breathed.
+O prophet of glad tidings, finisher
+Of utmost hope! now clear I understand
+What oft my steadiest thoughts have searched in vain;
+Why our great Expectation should be called
+The seed of Woman: Virgin Mother, hail,
+High in the love of Heaven; yet from my loins
+Thou shalt proceed, and from thy womb the Son
+Of God Most High: so God with Man unites!
+Needs must the Serpent now his capital bruise
+Expect with mortal pain: Say where and when
+Their fight, what stroke shall bruise the victor's heel.
+To whom thus Michael. Dream not of their fight,
+As of a duel, or the local wounds
+Of head or heel: Not therefore joins the Son
+Manhood to Godhead, with more strength to foil
+Thy enemy; nor so is overcome
+Satan, whose fall from Heaven, a deadlier bruise,
+Disabled, not to give thee thy death's wound:
+Which he, who comes thy Saviour, shall recure,
+Not by destroying Satan, but his works
+In thee, and in thy seed: Nor can this be,
+But by fulfilling that which thou didst want,
+Obedience to the law of God, imposed
+On penalty of death, and suffering death;
+The penalty to thy transgression due,
+And due to theirs which out of thine will grow:
+So only can high Justice rest appaid.
+The law of God exact he shall fulfil
+Both by obedience and by love, though love
+Alone fulfil the law; thy punishment
+He shall endure, by coming in the flesh
+To a reproachful life, and cursed death;
+Proclaiming life to all who shall believe
+In his redemption; and that his obedience,
+Imputed, becomes theirs by faith; his merits
+To save them, not their own, though legal, works.
+For this he shall live hated, be blasphemed,
+Seised on by force, judged, and to death condemned
+A shameful and accursed, nailed to the cross
+By his own nation; slain for bringing life:
+But to the cross he nails thy enemies,
+The law that is against thee, and the sins
+Of all mankind, with him there crucified,
+Never to hurt them more who rightly trust
+In this his satisfaction; so he dies,
+But soon revives; Death over him no power
+Shall long usurp; ere the third dawning light
+Return, the stars of morn shall see him rise
+Out of his grave, fresh as the dawning light,
+Thy ransom paid, which Man from death redeems,
+His death for Man, as many as offered life
+Neglect not, and the benefit embrace
+By faith not void of works: This God-like act
+Annuls thy doom, the death thou shouldest have died,
+In sin for ever lost from life; this act
+Shall bruise the head of Satan, crush his strength,
+Defeating Sin and Death, his two main arms;
+And fix far deeper in his head their stings
+Than temporal death shall bruise the victor's heel,
+Or theirs whom he redeems; a death, like sleep,
+A gentle wafting to immortal life.
+Nor after resurrection shall he stay
+Longer on earth, than certain times to appear
+To his disciples, men who in his life
+Still followed him; to them shall leave in charge
+To teach all nations what of him they learned
+And his salvation; them who shall believe
+Baptizing in the profluent stream, the sign
+Of washing them from guilt of sin to life
+Pure, and in mind prepared, if so befall,
+For death, like that which the Redeemer died.
+All nations they shall teach; for, from that day,
+Not only to the sons of Abraham's loins
+Salvation shall be preached, but to the sons
+Of Abraham's faith wherever through the world;
+So in his seed all nations shall be blest.
+Then to the Heaven of Heavens he shall ascend
+With victory, triumphing through the air
+Over his foes and thine; there shall surprise
+The Serpent, prince of air, and drag in chains
+Through all his realm, and there confounded leave;
+Then enter into glory, and resume
+His seat at God's right hand, exalted high
+Above all names in Heaven; and thence shall come,
+When this world's dissolution shall be ripe,
+With glory and power to judge both quick and dead;
+To judge the unfaithful dead, but to reward
+His faithful, and receive them into bliss,
+Whether in Heaven or Earth; for then the Earth
+Shall all be Paradise, far happier place
+Than this of Eden, and far happier days.
+So spake the Arch-Angel Michael; then paused,
+As at the world's great period; and our sire,
+Replete with joy and wonder, thus replied.
+O Goodness infinite, Goodness immense!
+That all this good of evil shall produce,
+And evil turn to good; more wonderful
+Than that which by creation first brought forth
+Light out of darkness! Full of doubt I stand,
+Whether I should repent me now of sin
+By me done, and occasioned; or rejoice
+Much more, that much more good thereof shall spring;
+To God more glory, more good-will to Men
+From God, and over wrath grace shall abound.
+But say, if our Deliverer up to Heaven
+Must re-ascend, what will betide the few
+His faithful, left among the unfaithful herd,
+The enemies of truth? Who then shall guide
+His people, who defend? Will they not deal
+Worse with his followers than with him they dealt?
+Be sure they will, said the Angel; but from Heaven
+He to his own a Comforter will send,
+The promise of the Father, who shall dwell
+His Spirit within them; and the law of faith,
+Working through love, upon their hearts shall write,
+To guide them in all truth; and also arm
+With spiritual armour, able to resist
+Satan's assaults, and quench his fiery darts;
+What man can do against them, not afraid,
+Though to the death; against such cruelties
+With inward consolations recompensed,
+And oft supported so as shall amaze
+Their proudest persecutors: For the Spirit,
+Poured first on his Apostles, whom he sends
+To evangelize the nations, then on all
+Baptized, shall them with wonderous gifts endue
+To speak all tongues, and do all miracles,
+As did their Lord before them. Thus they win
+Great numbers of each nation to receive
+With joy the tidings brought from Heaven: At length
+Their ministry performed, and race well run,
+Their doctrine and their story written left,
+They die; but in their room, as they forewarn,
+Wolves shall succeed for teachers, grievous wolves,
+Who all the sacred mysteries of Heaven
+To their own vile advantages shall turn
+Of lucre and ambition; and the truth
+With superstitions and traditions taint,
+Left only in those written records pure,
+Though not but by the Spirit understood.
+Then shall they seek to avail themselves of names,
+Places, and titles, and with these to join
+Secular power; though feigning still to act
+By spiritual, to themselves appropriating
+The Spirit of God, promised alike and given
+To all believers; and, from that pretence,
+Spiritual laws by carnal power shall force
+On every conscience; laws which none shall find
+Left them inrolled, or what the Spirit within
+Shall on the heart engrave. What will they then
+But force the Spirit of Grace itself, and bind
+His consort Liberty? what, but unbuild
+His living temples, built by faith to stand,
+Their own faith, not another's? for, on earth,
+Who against faith and conscience can be heard
+Infallible? yet many will presume:
+Whence heavy persecution shall arise
+On all, who in the worship persevere
+Of spirit and truth; the rest, far greater part,
+Will deem in outward rites and specious forms
+Religion satisfied; Truth shall retire
+Bestuck with slanderous darts, and works of faith
+Rarely be found: So shall the world go on,
+To good malignant, to bad men benign;
+Under her own weight groaning; till the day
+Appear of respiration to the just,
+And vengeance to the wicked, at return
+Of him so lately promised to thy aid,
+The Woman's Seed; obscurely then foretold,
+Now ampler known thy Saviour and thy Lord;
+Last, in the clouds, from Heaven to be revealed
+In glory of the Father, to dissolve
+Satan with his perverted world; then raise
+From the conflagrant mass, purged and refined,
+New Heavens, new Earth, ages of endless date,
+Founded in righteousness, and peace, and love;
+To bring forth fruits, joy and eternal bliss.
+He ended; and thus Adam last replied.
+How soon hath thy prediction, Seer blest,
+Measured this transient world, the race of time,
+Till time stand fixed! Beyond is all abyss,
+Eternity, whose end no eye can reach.
+Greatly-instructed I shall hence depart;
+Greatly in peace of thought; and have my fill
+Of knowledge, what this vessel can contain;
+Beyond which was my folly to aspire.
+Henceforth I learn, that to obey is best,
+And love with fear the only God; to walk
+As in his presence; ever to observe
+His providence; and on him sole depend,
+Merciful over all his works, with good
+Still overcoming evil, and by small
+Accomplishing great things, by things deemed weak
+Subverting worldly strong, and worldly wise
+By simply meek: that suffering for truth's sake
+Is fortitude to highest victory,
+And, to the faithful, death the gate of life;
+Taught this by his example, whom I now
+Acknowledge my Redeemer ever blest.
+To whom thus also the Angel last replied.
+This having learned, thou hast attained the sum
+Of wisdom; hope no higher, though all the stars
+Thou knewest by name, and all the ethereal powers,
+All secrets of the deep, all Nature's works,
+Or works of God in Heaven, air, earth, or sea,
+And all the riches of this world enjoyedst,
+And all the rule, one empire; only add
+Deeds to thy knowledge answerable; add faith,
+Add virtue, patience, temperance; add love,
+By name to come called charity, the soul
+Of all the rest: then wilt thou not be loth
+To leave this Paradise, but shalt possess
+A Paradise within thee, happier far.--
+Let us descend now therefore from this top
+Of speculation; for the hour precise
+Exacts our parting hence; and see!the guards,
+By me encamped on yonder hill, expect
+Their motion; at whose front a flaming sword,
+In signal of remove, waves fiercely round:
+We may no longer stay: go, waken Eve;
+Her also I with gentle dreams have calmed
+Portending good, and all her spirits composed
+To meek submission: thou, at season fit,
+Let her with thee partake what thou hast heard;
+Chiefly what may concern her faith to know,
+The great deliverance by her seed to come
+(For by the Woman's seed) on all mankind:
+That ye may live, which will be many days,
+Both in one faith unanimous, though sad,
+With cause, for evils past; yet much more cheered
+With meditation on the happy end.
+He ended, and they both descend the hill;
+Descended, Adam to the bower, where Eve
+Lay sleeping, ran before; but found her waked;
+And thus with words not sad she him received.
+Whence thou returnest, and whither wentest, I know;
+For God is also in sleep; and dreams advise,
+Which he hath sent propitious, some great good
+Presaging, since with sorrow and heart's distress
+Wearied I fell asleep: But now lead on;
+In me is no delay; with thee to go,
+Is to stay here; without thee here to stay,
+Is to go hence unwilling; thou to me
+Art all things under $Heaven, all places thou,
+Who for my wilful crime art banished hence.
+This further consolation yet secure
+I carry hence; though all by me is lost,
+Such favour I unworthy am vouchsafed,
+By me the Promised Seed shall all restore.
+So spake our mother Eve; and Adam heard
+Well pleased, but answered not: For now, too nigh
+The Arch-Angel stood; and, from the other hill
+To their fixed station, all in bright array
+The Cherubim descended; on the ground
+Gliding meteorous, as evening-mist
+Risen from a river o'er the marish glides,
+And gathers ground fast at the labourer's heel
+Homeward returning. High in front advanced,
+The brandished sword of God before them blazed,
+Fierce as a comet; which with torrid heat,
+And vapour as the Libyan air adust,
+Began to parch that temperate clime; whereat
+In either hand the hastening Angel caught
+Our lingering parents, and to the eastern gate
+Led them direct, and down the cliff as fast
+To the subjected plain; then disappeared.
+They, looking back, all the eastern side beheld
+Of Paradise, so late their happy seat,
+Waved over by that flaming brand; the gate
+With dreadful faces thronged, and fiery arms:
+Some natural tears they dropt, but wiped them soon;
+The world was all before them, where to choose
+Their place of rest, and Providence their guide:
+They, hand in hand, with wandering steps and slow,
+Through Eden took their solitary way.
+
+[The End]
diff --git a/snappy-1.1.0/testdata/ptt5 b/snappy-1.1.0/testdata/ptt5 Binary files differnew file mode 100644 index 0000000..bdd7f36 --- /dev/null +++ b/snappy-1.1.0/testdata/ptt5 diff --git a/snappy-1.1.0/testdata/sum b/snappy-1.1.0/testdata/sum Binary files differnew file mode 100644 index 0000000..758fd81 --- /dev/null +++ b/snappy-1.1.0/testdata/sum diff --git a/snappy-1.1.0/testdata/urls.10K b/snappy-1.1.0/testdata/urls.10K new file mode 100644 index 0000000..eaf0633 --- /dev/null +++ b/snappy-1.1.0/testdata/urls.10K @@ -0,0 +1,10000 @@ +http://ftp.sektornet.dk/tucows/herdwin0904.html +http://209.143.244.16/directory/us/nd/fargo/insurance/automotive.html +http://bellona.itworld.com:8080/cwi/reprint/0,1926,NAV63-128-1357-1367_STO46538,00.html +http://www.legis.state.ia.us/usr/ns-home/docs/GA/76GA/Session.2/SJournal/01600/01644.html +http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/showFolder/100001/1211898 +http://www.burstnet.com/ads/ad7826a-map.cgi/271412263 +http://topcu.tucows.com/winme/adnload/137036_30095.html +http://topcu.tucows.com/winme/adnload/145034_49120.html +http://link.fastpartner.com/do/session/600342/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/bitconomy.php +http://www.retrobytes.org/classiccmp/9911/msg01245.html +http://www.localbusiness.com/Story/Print/0,1197,DFW_196102,00.html +http://bbs.kh.edu.tw/treasure/childhood/M.962620586.A/M.966031025.A/M.966031098.A.html +http://www.hig.se/(accessed,clientname,return)/~jackson/roxen/testform.html +http://www.ipclub.ru:8102/cgi-bin/linkmaker/linklist-view.cgi?owner=elvis&Sector=434 +http://www.dulux.co.uk/UKRETAIL:229853034:DFinity.1QJiP4jMofi7bof +http://www.dominionpost.com/cgi-bin/redirect.exe/85288 +http://br.egroups.com/message/anedotas/3988 +http://www.ing.iac.es/~cfg/group_notes/texinfo/spec/file$_must$_exist_$28appendfile$29.html +http://hurweb01.hurriyetim.com.tr/hur/turk/99/06/22/yasam/14yas.htm +http://www3.plala.or.jp/shinchi/niltuki/mai0416.htm +http://www3.plala.or.jp/shinchi/niltuki/mai0420.htm +http://213.36.119.69/do/session/152968/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www3.travelprice.com/voyages/recherche.phtml +http://www.meristation.es/Trucos/s/starcraft_brood.htm +http://www.meristation.es/Trucos/trainer/train_star_war.htm +http://www.askme.com/cat/ShowCategory_3104_an_9.htm +http://mozilla.org/newlayout/testcases/css/sec542cm.htm +http://ampec.ampec.it/ted/box04/page36.htm +http://ampec.ampec.it/ted/box04/page39.htm +http://ampec.ampec.it/ted/box04/page42.htm +http://ampec.ampec.it/ted/box04/page58.htm +http://ampec.ampec.it/ted/box04/page62.htm +http://www.businesswire.com/webbox/bw.080300/202160192.htm +http://www.businesswire.com/webbox/bw.062700/201790580.htm +http://www.businesswire.com/webbox/bw.040300/200940796.htm +http://retailer.gocollect.com/do/session/1912606/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=1 +http://retailer.gocollect.com/do/session/1912606/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp +http://genforum.genealogy.com/cgi-bin/print.cgi?ivy::116.html +http://www.spiral.at/Katalog/Artikel/6150331/ +http://www.spiral.at/Katalog/Artikel/6150390/ +http://www.spiral.at/Katalog/Artikel/6150411/ +http://bbs.msquare.or.kr/list.bbs/writer/Soohah/8.html +http://www.eskimo.com/~wesn/waflyfishers/msg03537.html +http://denniscares.mp2.homes.com/content/glossary.html?Letter=A +http://library.bangor.ac.uk/search/aChandler,+Peter,+1936-/achandler+peter+1936/-5,-1,0,B/bibandlinks&F=achandler+raymond+1888+1959&5,,6 +http://www.kimkihong.pe.kr/ +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/199/1998/6/0/1323673/ +http://musictz.com/user/fernman.html +http://tucows.concepts.nl/winnt/adnload/1381_28803.html +http://www.mirror.kiev.ua:8083/paper/2000/03/1251/text/03-06-6.htm +http://ring.crl.go.jp/pub/linux/debian/debian-jp/dists/stable/non-free/binary-arm/x11/?N=D +http://news.novgorod.ru/news/2000/4/23/2/9 +http://www.egroups.com/dir/World/Deutsch/Gesellschaft/Bildung/Schule?st=167 +http://www.egroups.com/group/abitur98 +http://genforum.genealogy.com/cgi-genforum/forums/casey.cgi?1477 +http://www.tvstore.com/browse/TV/BOXERSHO/s.UtRroVXF +http://www.tvstore.com/browse/TV/COLLECTI/s.UtRroVXF +http://www.tvstore.com/browse/TV/EARRINGS/s.UtRroVXF +http://polygraph.ircache.net:8181/text/m90/http_-2ewp.aliant.com/attivita.htm +http://rosebay.1000pages.com/ceclgt12.htm +http://www02.u-page.so-net.ne.jp/sb3/mizo/home/sub1/link2/?M=A +http://community.webshots.com/photo/5827455/5827535oqdRLPNiek +http://troy.lib.sfu.ca/search/dbiology+periodicals/dbiology+periodicals/19,-1,0,B/frameset&F=dbiology+religious+aspects&1,1 +http://213.36.119.69/do/session/152973/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/special/alitalia.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/programs/simple/linux/math/computers/tunes.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/programs/simple/linux/math/lit/hasard.html +http://www.elop.de/l0-1011-xx-3006-top.html +http://britanica.com/bcom/eb/article/idxref/0/0,5716,364643,00.html +http://britanica.com/bcom/eb/article/7/0,5716,28557+1+28108,00.html +http://www.geocrawler.com/archives/3/3174/2000/5/50/3724502/ +http://www.geocrawler.com/archives/3/3174/2000/5/50/3699557/ +http://www.geocrawler.com/archives/3/3174/2000/5/50/3689003/ +http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/net/slirp/files/ +http://www.duluxvalentine.com/FRANCE:219793321:DFinity.1QJiP4jmPgUaedp +http://mundo.ole.es/ocio/articulo/html/oci4270.htm +http://www.maasvlakte-cam.nl/webcams/43/etna__italy/1999/08/29/01:28:02.html +http://www.chinabyte.com/staticpages/builder/builder_course_next/HIPR/builder_course_next_219_HIPR.html +http://www.prospects2.csu.ac.uk/servlet/postgrad.TcAssess?pgid=9634 +http://ftp.sunet.se/pub/lang/perl/CPAN/authors/id/SPP/?N=D +http://www.egroups.com/message/WDT/7751 +http://pub8.ezboard.com/fapricotyarn.unsubscribeUnregisteredToTopic?topicID=4.topic +http://support.tandy.com/support_audio/doc9/9679.htm +http://megalink.tucows.com/winme/preview/74862.html +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/199/1996/2/0/2460450/ +http://www.monaco.gouv.mc/dataweb/gouvmc.nsf/(NewsActu)/d28eaee29b3287d4c1256905004e1ef1!OpenDocument&ExpandSection=10.3,10.4,7,9,4,6 +http://www.fao.org/montes/foda/wforcong/PUBLI/V2/T8S/1-3.HTM +http://library.cuhk.edu.hk/search*chi/a蔡淙霖,+1965-/a%7B215572%7D%7B214758%7D%7B215f60%7D+1965/-5,-1,0,B/browse +http://www.nrk.no/finnmark/x31_12_97/nyh6.htm +http://www.dailyrush.dk/stories/129/comments/pages/1 +http://home.wanadoo.nl/pieter.heres/nedbaskteam/nbt/Web%20Album%20nbt%20spelers/page3.htm +http://members.tripod.co.jp/masa_selfish/?M=A +http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/misc/lile/patches/Attic/?sortby=date +http://www.chaos.dk/sexriddle/z/l/x/y/m/ +http://www.chaos.dk/sexriddle/z/l/x/y/p/ +http://users.sexyboards.com/amandaslut/messages/17.html +http://pub11.ezboard.com/fusscroatiastartrekanimators.showAddTopicScreenFromWeb +http://retailer.gocollect.com/do/session/1912610/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/site_tour/index.asp +http://ftp.sunet.se/pub/FreeBSD/ports/ports-current/misc/boxes/pkg-comment +http://www.ce-europe2.philips.com/do/session/80299/vsid/1034/tid/1034/cid/28533/mid/1020/rid/1021/chid/1024/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkZHbjbHrolLmbkKmefLifmLpkZHljlKmoaLl0/url/http://www.eu.microsoft.com/windows/ie_intl/es/ +http://www.peopledaily.co.jp/199904/26/newfiles/col_990426001084_tyxw.html +http://www.peopledaily.co.jp/199904/26/newfiles/col_990426001087_tyxw.html +http://iraustralia.com/listco/hk/swire/profile.htm +http://jefferson.village.virginia.edu/wax/slow/english/3pix/BRight2/1/1a5a15a1.html +http://infoserv2.ita.doc.gov/efm/efm.nsf/Sources!OpenView&Start=35.16&Count=30&Expand=37 +http://www.affiliate.hpstore.hp.co.uk/do/session/380772/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/entry1.asp +http://www.trax.nilex.co.uk/trax.cgi/A1S/B1U/B1R/A3S/A4R/C2U/ +http://www.trax.nilex.co.uk/trax.cgi/A1S/B1U/B1R/A3S/A4R/C2S/ +http://www.quia.com/email.cgi?7106&fc +http://www.mirror.edu.cn/res/sunsite/pub/academic/agriculture/sustainable_agriculture/news+mail-archives/6/ +http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/Beholder/CVSROOT/config?only_with_tag=MAIN +http://collection.nlc-bnc.ca/100/201/300/info_tabac/html/1998/bull21/poumon.html +http://www.erotism.com/sweetlostcherry/g3.htm +http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/SharewareMusicMachine/MusicSoftware1/96457 +http://members.tripod.com/~tonarcos/paginas/Nancy1.html +http://www.gbnf.com/genealog2/stout/html/d0024/I2144.HTM +http://ftp.du.se/disk4/FreeBSD/branches/4.0-stable/ports/deskutils/cbb/ +http://www.hri.org/docs//statedep/95-09-13.std.html +http://ftp.univie.ac.at/packages/tex/macros/latex//contrib/supported/eurofont/adobeuro/readme.txt +http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/showNextUnseen/fol/100001/1513138 +http://tucows.ipv.pt/winnt/adnload/1891_28712.html +http://www.tucsonweekly.com/tw/02-09-95/danehy.htm +http://message/artefactphil/87?expand=1 +http://www.kiarchive.ru:8091/pub/FreeBSD/FreeBSD-current/src/gnu/Makefile/ +http://retailer.gocollect.com/do/session/1912644/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/index.asp +http://retailer.gocollect.com/do/session/1912644/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/about.asp +http://park.org:8888/Cdrom/TheNot/Mail/NotPark/msg00070.html +http://citeseer.nj.nec.com/cachedpage/67611/1 +http://citeseer.nj.nec.com/cidcontext/1053642 +http://www.3w-buecher.de/GiacamanGeorge/GiacamanGeorge0745312381.htm +http://au.yahoo.com/Regional/U_S__States/Colorado/Cities/Littleton/Real_Estate/Agencies/ +http://www.power2lead.com/Global/English.nsf/pgWWLocations!OpenPage&ExpandSection=21,28,29,32,22 +http://hem.fyristorg.com/bfo/gagarin/WWW.SAMIRADIO.ORG/svenska/sport-sv.html +http://www.chaos.dk/sexriddle/e/n/q/v/m/ +http://www.hig.se/(formoutput,remove_cookie,sort,sql,sqlquery)/~jackson/roxen/ +http://129.142.8.149/ds/it/isodocs/122400/12240011/12240000117900/ +http://129.142.8.149/ds/it/isodocs/122400/12240011/12240000116400/ +http://129.142.8.149/ds/it/isodocs/122400/12240011/12240000116200/ +http://129.142.8.149/ds/it/isodocs/122400/12240011/12240000113100/ +http://129.142.8.149/ds/it/isodocs/122400/12240011/12240000110800/ +http://koi.www.citycat.ru/funny/fido/2000_10/07.html +http://koi.www.citycat.ru/funny/fido/2000_10/09.html +http://www.hig.se/(countdown,debug,header,if,return)/~jackson/roxen/ +http://www.findtravel.to/search_engine_directory/north_america_usa_canada/united_states/michigan/_travel_guides/ +http://mediate.magicbutton.net/do/session/625534/vsid/3255/tid/3255/cid/87978/mid/2008/rid/2157/chid/2581/url/http://www1.getmapping.com/competition/index.cfm +http://mediate.magicbutton.net/do/session/625534/vsid/3255/tid/3255/cid/87978/mid/2008/rid/2157/chid/2581/url/http://www1.getmapping.com/aboutus/partners2.cfm +http://www.petropages.com/products/p9827.htm +http://www.egroups.com/login.cgi?login_target=%2Fmessage%2Fspynews%2F54 +http://health.sx.zj.cn/Treatment/SuperGuide/2000-3-8/4716.htm +http://www.nease.net/~qin/chardware.htm +http://www.argos.asso.fr/bourges/pratiq/emploi/texte/anpesud.htm +http://ftp.sunet.se/pub/FreeBSD/ports/ports-current/www/p5-Apache-Session/?S=A +http://www.eveclub.com/cgi-bin/eveclub.front/972959425847/Catalog/1000046 +http://retailer.gocollect.com/do/session/1912628/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=1 +http://yp.gates96.com/1/10/21/73.html +http://yp.gates96.com/1/10/21/95.html +http://yp.gates96.com/1/10/22/21.html +http://yp.gates96.com/1/10/22/31.html +http://yp.gates96.com/1/10/22/52.html +http://yp.gates96.com/1/10/22/76.html +http://yp.gates96.com/1/10/22/79.html +http://yp.gates96.com/1/10/23/57.html +http://yp.gates96.com/1/10/23/73.html +http://yp.gates96.com/1/10/25/20.html +http://yp.gates96.com/1/10/25/46.html +http://yp.gates96.com/1/10/25/87.html +http://yp.gates96.com/1/10/26/76.html +http://yp.gates96.com/1/10/26/84.html +http://yp.gates96.com/1/10/27/67.html +http://yp.gates96.com/1/10/28/70.html +http://yp.gates96.com/1/10/28/91.html +http://live.excite.com/lifestyle/politics_and_society/countries/asia/uzbekistan/guides_and_reference/ +http://biblioteca.upv.es/bib/doc/doc_fisbd/367/114176//C/1825519/0////25/S/MLTPAI +http://mai.flora.org/forum/5322 +http://mai.flora.org/forum/5318 +http://www.brickshelf.com/scans/0000/0715/0715-03.html +http://www.brickshelf.com/scans/0000/0715/0715-12.html +http://www.brickshelf.com/scans/0000/0715/0715-21.html +http://www.msb.malmo.se/search*swe/dManikyr/dmanikyr/-5,-1,0,B/frameset&F=dmani&1,1 +http://message/cinematik/2441?expand=1 +http://message/cinematik/2447?expand=1 +http://www.jamba.de/KNet/_KNet-Rco8j1-WDd-137sh/showInfo-special1.de/node.0/cde7f1uou +http://www.jamba.de/KNet/_KNet-Rco8j1-WDd-137ss/showInfo-hilfe.de/node.0/cde7f1uou +http://acmepet.petsmart.com/canine/breeds/labrador/bboard/messages/5245.html +http://acmepet.petsmart.com/canine/breeds/labrador/bboard/messages/5226.html +http://config.tucows.com/winnt/adnload/67680_29009.html +http://config.tucows.com/winnt/adnload/55386_29005.html +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdeutils/knotes/Attic/renamedlg.cpp?r1=1.7&only_with_tag=MAIN +http://www.imagestation.com/member/?name=Twiggy5&c=1 +http://cometweb01.comet.co.uk/do!tid=20&rtid=3&vsid=700&session=131981&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHljbLqleHqjiLlel5jblKqlmLkeq5j1 +http://community.webshots.com/photo/1921549/2334169DWEIWPyCoH +http://www.fogdog.com/cedroID/ssd3040183158605/nav/stores/skateboarding/ +http://www.fogdog.com/cedroID/ssd3040183158605/content/fan/subway_series/ +http://www.fogdog.com/cedroID/ssd3040183158605/boutique/ashworth/ +http://www.fogdog.com/cedroID/ssd3040183158605/customer_service/our_partners.html +http://www.jacksonhewitt.com/ctg/cgi-bin/JacksonHewitt/media_center/AAAksrACwAAACCOAAl +http://www.jacksonhewitt.com/ctg/cgi-bin/JacksonHewitt/talktous/AAAksrACwAAACCOAAl +http://arabia.com/jordan/article/print/1,5130,3048|Life,00.html +http://198.3.99.101/reference/politics_and_govt/humor/games/ +http://www.pocketbible.co.kr/old/Leviticus/Leviticus24/Leviticus24-14.htm +http://www.ozon.ru/detail.cfm/ent=5&id=12&txt=1 +http://www.ozon.ru/detail.cfm/ent=2&id=2141 +http://www.chaos.dk/sexriddle/m/t/i/t/j/ +http://www.outpersonals.com/cgi-bin/w3com/pws/out/5VhIq3rCy0eiHAzs1LOyTswNBIR33Wxc8NtFBCnYVNlrV5p9laRchaQrPWdU7-F739tsfX-p5-IA-j1rTm1YLCRAwn1FAriW9Ps21GP6CvyIL7YFYjLtOcez03i6Q9Xw3LRDtJY2CIzGQuZp-sH_-s_D66j9 +http://www.outpersonals.com/cgi-bin/w3com/pws/out/lKhIoWbn-weE729M1n0JT8Ina4qOfm_FI2ROg8RdrrVu5kq_AK_urPMHafLCMwWCiOLuc8OIIHCFnJaCfz2LSrURBHFjDJP1fBO0X58Y28opSv0qVXWAKYtub7NbCIIWMbE_ldcypBmh +http://www.outpersonals.com/cgi-bin/w3com/pws/out/PbhIoduIKw3faQWbBTWSK5aq7Y-nGqcvK3flLaTRo02t7k7GMY8rPlupJIheD8869wCXUAer4VimzyYa25qUx7ef2l2VdMR9i_p-pJ5gg2S6ZcP-G6RuPfdDS3TEsJNXGVsOTs1rA605 +http://www.linux.com/networking/network/development/web_server/performance/?printable=yes +http://www.linux.com/networking/network/development/web_server/performance/IBM/ +http://sunsite.icm.edu.pl/Linux/Documentation/HOWTO/mini/IP-Subnetworking-3.html +http://dreamcity.gaiax.com/www/dreamcity/m/s/musou/frame.html +http://guardian.co.uk/Widgets/Read_It_Later/TR/1,4694,4043922,00.html +http://www.gpul.org/ftp/os/infinite/?M=A +http://www.gpul.org/ftp/os/infinite/infinite_OS.txt +http://retailer.gocollect.com/do/session/1912666/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/exclusives.asp +http://yp.gates96.com/13/77/10/66.html +http://yp.gates96.com/13/77/10/91.html +http://yp.gates96.com/13/77/11/82.html +http://yp.gates96.com/13/77/12/17.html +http://yp.gates96.com/13/77/13/68.html +http://yp.gates96.com/13/77/13/80.html +http://yp.gates96.com/13/77/16/3.html +http://yp.gates96.com/13/77/16/17.html +http://yp.gates96.com/13/77/16/49.html +http://yp.gates96.com/13/77/17/8.html +http://yp.gates96.com/13/77/18/4.html +http://yp.gates96.com/13/77/18/61.html +http://yp.gates96.com/13/77/18/71.html +http://yp.gates96.com/13/77/19/3.html +http://yp.gates96.com/13/77/19/24.html +http://yp.gates96.com/13/77/19/48.html +http://yp.gates96.com/13/77/19/98.html +http://yp.gates96.com/13/77/19/99.html +http://scsinternet.tucows.com/winnt/mail95.html +http://tolm.terrashare.com/45.htm +http://news.dreamwiz.com/news/08/20001030/kukmin/200010301903081903261.html +http://www.tccomputers.com/cgi-bin/bp/1463655603/services/info/tci.htm +http://www.tccomputers.com/cgi-bin/bp/1463655603/services/csc/csc.htm +http://www.2pl.com/b/pl/to/1/01/04/v2/1010400016-6-2r.htm +http://www.2pl.com/b/pl/to/1/01/04/v2/1010400016-3-2r.htm +http://www.2pl.com/b/pl/to/1/01/04/v2/1010400016-18-2r.htm +http://www.2pl.com/b/pl/to/1/01/04/v2/1010400016-1r.htm +http://www.123bestphonerates.com/q/001p/vn/vR85aEOIaY.htm +http://www.thisislancashire.co.uk/lancashire/archive/1997/07/17/SPORTST5VQ.html +http://www.thisislancashire.co.uk/lancashire/archive/1997/07/17/SPORTST7VQ.html +http://www.thisislancashire.co.uk/lancashire/archive/1997/07/17/SPORTST11VQ.html +http://www.elsur.cl/archivo/marzo2000/13marzo2000/elsur/deportes/ind3.php3 +http://home.no.net/fristart/kvasir816/ +http://www.fun7.de/party/cafe_europa/_vti_cnf/?D=A +http://www.users.yun.co.jp/cgi-bin/moriq/pigeon/pigeon.cgi/%C5%E7%BA%AC%B8%A9.%C2%E7%B8%B6%B7%B4%C2%E7%C5%EC%C4%AE?c=e +http://polygraph.ircache.net:8181/http_-2www.whowhere.com/http_-2www.expired.com/html/service.html +http://home.t-online.de/home/mtc.hannover/head1655833.htm +http://moneycentral.msn.com/investor/invsub/insider/Details.asp?Pval=1&Symbol=MKSI +http://www.sohu.com/Regional/hunan/City_County/Yiyang/Firms/Food_Beverage/ +http://www.kulturkreis-rhein-lahn.de/lauer/fax.htm +http://ustlib.ust.hk/search*chi/aporter+bill+1943/aporter+bill+1943/7,-1,0,B/browse +http://www.brio.de/BRIO.catalog/39fe2f3708fb3c8e2740d472aa7806d5/UserTemplate/2 +http://www.brio.de/BRIO.catalog/39fe2f3708fb3c8e2740d472aa7806d5/UserTemplate/6 +http://rcsl.auto.inha.ac.kr/~treeman/Documents/HOWTO/Keyboard-and-Console-HOWTO-19.html +http://www.etoys.com/cat/toy/category/construction/brio_builder_system/1 +http://www.kxmd.com/now/story/0,1597,194790-295,00.shtml +http://www.ferien-immobilien.de/DominikanischeRep/verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/Gemeinsam/versicherungen/gebaeude/IIM-Teil/Startseite/froben.htm +http://hiv.medscape.com/LWW/SMD/1999/v21.n03/smd2103.01.html +http://www.egroups.com/message/dk-jaws/530 +http://no.egroups.com/message/daemon-news-announce/12 +http://ring.toyama-ix.net/archives/text/elisp/jaist/yamaoka/apel/00_THIS_DIRECTORY_WILL_NOT_BE_UPDATED_UNTIL_2000-10-26 +http://pub12.ezboard.com/ftibesataxg1637tibes.subscribeUnregisteredToTopic?topicID=7.topic +http://ustlib.ust.hk/search*chi/ali+huan+1827+1891/ali+huan+1827+1891/-5,-1,0,E/frameset&F=ali+huan&4,,0 +http://ustlib.ust.hk/search*chi/ali+huan+1827+1891/ali+huan+1827+1891/-5,-1,0,E/frameset&F=ali+huang+1895&1,,0 +http://www.digitalcity.com/cincinnati/sports/log.dci?league=NCF&team=NNF +http://ftp.nacamar.de/pub/debian/dists/potato/main/disks-m68k/2.2.16-2000-07-14/mac/images-1.44/?D=A +http://www.academyfloral.com/state/arboo/flowers/thanksabunchbouquet2.html +http://dante.bdp.it/cgi-bin/poseidon_v2.0/reflect/poseidon/disc/peacelink-scuola/2015003604/view/8 +http://ring.omp.ad.jp/pub/NetBSD/NetBSD-current/pkgsrc/lang/smalltalk/files/?S=A +http://ring.omp.ad.jp/pub/NetBSD/NetBSD-current/pkgsrc/lang/smalltalk/files/patch-sum +http://carriage.de/Schoner/Sammlungen/literature/collections/literature/modelle/ +http://www.buybuddy.com/sleuth/27/1/11001/1692/ +http://193.120.14.241/pub/languages/perl/CPAN/src/5.0/devel/ +http://lastminutetravel.bedandbreakfast.com/bbc/p208900.asp +http://chat.sportsline.com/u/wire/stories/0,1169,2957692_59,00.html +http://acad.uis.edu/sas/qc/q-index.htm +http://acad.uis.edu/sas/qc/s-index.htm +http://library.cuhk.edu.hk/search*chi/aPan,+Zhuonan./apan+zhuonan/-5,1,1,B/frameset&F=apan+zhichang+1956&1,1, +http://www.linux.com/networking/network/install/tools/updates/new/ +http://www.linux.com/networking/network/install/tools/updates/Standards/ +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=13,31,5,11,26 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=23,31,5,11,26 +http://www.mfa.no/fin/norsk/publ/stprp/006005-991562/index-hov017-b-n-a.html +http://ftp.sunet.se/pub/lang/perl/CPAN/authors/id/DBEAZLEY/?N=D +http://fi.egroups.com/messages/infoespo/6?expand=1 +http://ibc.cn.net/2000/0718/it-1message.html +http://www.shaggysguide.com/conhtml/adnload/51647_1809.html +http://www.shaggysguide.com/conhtml/adnload/51657_5567.html +http://www.shaggysguide.com/conhtml/adnload/74370_17872.html +http://www.shaggysguide.com/conhtml/adnload/78469_19520.html +http://www.shaggysguide.com/conhtml/adnload/78940_19788.html +http://www.backflip.com/members/jhferrara/5171381/page=1/sort=1/linkspp=10 +http://www.amcity.com/philadelphia/stories/1998/08/24/newscolumn3.html?t=printable +http://www.rge.com/pub/tex/biblio/bibtex/ms-dos/demel/?N=D +http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/67841000005885200000309700000064451/Giveaways.wo/257820000054451/2.0.0.6.0/3/Webobjects1 +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www-gds.desy.de:8080/zeitpl/zpl.htm +http://click-to.tell-a-friend.boardhost.com/tell-a-friend-confirm.cgi?chudtvlogic&msg=1596 +http://retailer.gocollect.com/do/session/1912639/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp +http://www.jpc-music.com/5590216.htm +http://huntingfishing.tripod.com/sturgeonmain.htm +http://polygraph.ircache.net:8181/wwwboard/prodev/seminar/fast/http_-2www.centennialcc.org/bps.html +http://www.chaos.dk/sexriddle/s/t/c/x/l/ +http://www.chaos.dk/sexriddle/s/t/c/x/z/ +http://es.egroups.com/messages/plato-meno/1285 +http://tonggu-gch.ed.seoul.kr/home/2grade/2-10/981001/hang.htm +http://sjsulib1.sjsu.edu:81/search/dreligion/-5,-1,0,E/exact&dreligion+libraries&1,3 +http://www.generation-formation.fr/chiffrec.htm---o21zAo0UPwo0Ol9A074fo6Td4ezyr6feZJPAPfVbNyqHSezTHkekydMfeZJPdspt6dsSAtdsNhJdspt6dsrvrdjlhkfbd.htm +http://www.generation-formation.fr/dicoguid/diclogin.htm---o21zAo0UPwo0Ol9A074fo6Td4ezyr6feZJPAPfVbNyqureds5cezwhlezMpDeH7vGebI1yoKkfMd4vmMAxaAooKkfMd4u5xdfb7rmdfbT.htm +http://www.hollywoodonline.com/asplocal/mgvideoad.asp?rushhour-video-holdon-mov +http://www.ifg.uni-kiel.de/doc-clients/kdelibs-doc/html/kdeui/full-list-KRestrictedLine.html +http://www.3w-sciencefiction.de/ShapiroLarry/ShapiroLarry0760306729.htm +http://202.96.140.98/js/wenge/ +http://www.great-cyber-mall.com/SelectCompany.asp?CityID=230&CatID=19 +http://www.great-cyber-mall.com/SelectCompany.asp?CityID=230&CatID=34 +http://www.amazon.com.hk/exec/obidos/tg/stores/browse/-/books/13361/ +http://www.hole.kommune.no/hole/journweb.nsf/weboffjournal!OpenView&Start=99&Count=50&Collapse=116 +http://www.pbase.com/image/35702/small +http://www.infoscape.com.cn:8171/nf/0010/21/nfzy2104.htm +http://dell.excite.com/photo/topic/weather/national/19 +http://www.linux.com/networking/network/network/firewall/microsoft/government/ +http://www.gasex.com/gay.photo/gay.penis.pics.html +http://hausarbeiten.de/cgi-bin/superDBinters.pl/archiv/geschichte/gesch-stedinger.shtml +http://polygraph.ircache.net:8181/http_-2www.microsoft.com/frontpage/http_-2www.exploreuw.com/cards/ssoenews.html +http://www.fogdog.com/cedroID/ssd3040183137325/cgi-bin/MyFogdog +http://www.fogdog.com/cedroID/ssd3040183137325/cgi-bin/CedroCommerce?func=EditBasket +http://www.fogdog.com/cedroID/ssd3040183137325/nav/stores/cycling/ +http://www.fogdog.com/cedroID/ssd3040183137325/nav/stores/snowboarding/ +http://tucows.wanadoo.nl/win2k/organ2k_license.html +http://tucows.wanadoo.nl/win2k/preview/59164.html +http://windows.tucows.com/preview/001-009-005-005C.html +http://anekdotwall.boom.ru/car/html/75.htm +http://tucows.concepts.nl/win2k/clipb2k_size.html +http://tucows.concepts.nl/win2k/adnload/37291_29917.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=cricrila&l=pt +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=cricrilava&l=pt +http://www.trax.nilex.co.uk/trax.cgi/A1C/1AR/A2S/A3S/A3D/D1S/ +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_ngqyjt_ngqyjt.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_rtnucb_tyciyrg.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_kiektgt_fpwif.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_rjdbc_rjdbc.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_xsygo_xsygo.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_bovqcy_mkaqta.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_lgbrnl_psnjjt.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_lgbrnl_ybvfp.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_vermn_xmxmm.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/12_keojvu_faoex.html +http://info-china.hypermart.net/enterprise/company/messages/25.html +http://ring.yamanashi.ac.jp/pub/linux/debian/debian-jp/dists/potato/non-US/contrib/binary-m68k/Release +http://www.amigos.com/cgi-bin/w3com/pws/ffe/R7RIRASjZ5ATyRjNyXQBbwzK4LLK-rhgzZEBqJsLaR1cdnaeB7LT1xORWRg6aQmLxO7QWLEpsdjuf2ZqAnUO1IKpfrRctaIMYIzMNy1DSb7dp8_5z39WdF7oxbKUAByA +http://indigotrem1.chemie.uni-mainz.de/~manng001/Filme/S/SexLuegenundVideo.html +http://se.egroups.com/message/hur/387 +http://www.ilmessaggero.it/hermes/19990111/07_MARCHE/MARCHE_REGIONE/DUE.htm +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/lit/quizz/misc/colorart/lit/pushkin.html +http://www.amzn.com/exec/obidos/ts/artist-glance/201040/ref=pm_dp_ln_m_6/ +http://tucows.netpower.no/winme/adnload/138674_29970.html +http://www.chaos.dk/sexriddle/z/d/q/p/c/ +http://www.chaos.dk/sexriddle/z/d/q/p/u/ +http://sv.pachinkovillage.co.jp/catalog/DinoVaderB/3.html +http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/B1,a,1f,6,6,3a,3a,,5,,1f,5, +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=deflazioneranno&l=it +http://polygraph.ircache.net:8181/company/html/http_-2www.io.com/~kinnaman/pchealth/f-agents.html +http://polygraph.ircache.net:8181/company/html/http_-2www.io.com/~kinnaman/pchealth/f-leisureworld.html +http://ftp.univie.ac.at/packages/perl/modules/by-module/Tie/ILYAZ/cperl-mode/rms-emacs-20.2-patch-narrow-buffer+dirfiles +http://www.expressindia.com/ie/daily/19991126/ige26097p.html +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/ELINKEINO-+JA+YRITYSTOIMINTA/yritt%E4jyys/lukio/oppimateriaali/itseopiskelu/ +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=36,23,11,33,18 +http://www.trib.com/scjournal/ARC/1996/MAR/3_24_96/marines.html +http://www.slac.stanford.edu/BFROOT/www/Computing/Programming/QA/QaBetaTools/6.7.5a/SunOS5/?S=D +http://pokemonplant.tripod.com/150yellow.html +http://ftp.debian.org/dists/potato/contrib/binary-all/devel/?N=D +http://sunsite.org.uk/packages/tcl/Collections/ftp.neosoft.com/sorted/packages-8.0/print/frink/1.2p35/ +http://library.bangor.ac.uk/search/m304.6+LIN/m304.6+lin/-5,-1,0,B/frameset&F=m304.6+jos&1,1 +http://members.tripod.lycos.nl/janninksweg145/huis.htm +http://www.uib.no/People/mihtr/PS01/PS01_219.htm +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus141561/eus174865/eus327367/eus327602/eus329879/ +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus141561/eus174865/eus327367/eus327602/eus327608/ +http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|39P02|972959512|Communications|user|0|1,0,0,1 +http://www.bluefreds.f9.co.uk/vote2.html +http://www.hri.org/docs//statedep/1999/99-05-07.std.html +http://polygraph.ircache.net:8181/http_-2www.hblinfo.com/f_snowbuddies.html +http://mediate.magicbutton.net/do/session/625565/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/products.cfm +http://cometweb01.comet.co.uk/do!tid=20&rtid=2&vsid=692&session=131975&mid=1000&rid=1060&cid=37051&chid=1702&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG5ubLZDXLZolLl3l5jbqLlci5XqVLkXsLkao4tloHbmlLoq5 +http://digilander.iol.it/net4free/spedia.htm +http://totalsports.aol.com/stats/bbo/mlb/20000425/col.at.mon.prvw.html +http://210.178.135.1/netbbs/Bbs.cgi/nhic32042/qry/pno/0/zka/B2-kB2Zk/qqatt/^ +http://cikkek.lezlisoft.com/kikelet/spiritualitas/spirit3v9.shtml +http://www.wingateinns.com/ctg/cgi-bin/Wingate/aarp/AAAksrACwAAACCPAAl +http://sunsite.berkeley.edu/PhiloBiblon/BITAGAP/BIB/BIB1848.html +http://sunsite.uakom.sk/tucows/adnload/69390_28371.html +http://sunsite.uakom.sk/tucows/preview/77630.html +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=(22,0+9,0-~0,3 +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=(22,0+9,0-~9,6 +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=(22,0+9,0-~21,0 +http://sirac.inrialpes.fr/Infos/Personnes/Christophe.Rippert/ressources/jdk1.2.2/docs/api/java/security/ +http://polygraph.ircache.net:8181/getting_started/http_-2www.microsoft.com/powered/radio/email_pal/email_pal.htm +http://mirror.nucba.ac.jp/mirror/FreeBSD/branches/2.2-stable/ports/net/tund/?M=A +http://mirror.nucba.ac.jp/mirror/FreeBSD/branches/2.2-stable/ports/net/tund/?D=A +http://library.bangor.ac.uk/search/tNursing+times+clinical+monographs+&%2359%3B+no.+51/tnursing+times+clinical+monographs+no+++51/-17,-1,0,B/browse +http://library.bangor.ac.uk/search/tNursing+times+clinical+monographs+&%2359%3B+no.+51/tnursing+times+clinical+monographs+no+++51/-5,-1,0,B/frameset&F=tnursing+times+complementary+therapy&1,1 +http://ftp.chg.ru/pub/FreeBSD/doc/en_US.ISO_8859-1/articles/programming-tools/ +http://polygraph.ircache.net:8181/getting_started/http_-2www.microsoft.com/powered/bomb/bomb.htm +http://linux.tucows.inwind.it/conhtml/adnload/8523_5414.html +http://www.magicvillage.de/magicvillage/KonferenzPlaza/fbs/%2328835852?NextInThread +http://www.shopworks.com/samplers/index.cfm/action/cart/userid/0009CECE-2EE1-19FE-9038010B0A0ADCF2 +http://dailynews.sina.com/newsCenter/taiwan/udn/2000/1021/2051701_b5.html +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdeutils/khexedit/pics/Attic/?hideattic=1&sortby=date +http://moviestore.zap2it.com/browse/MOVIES/BOWL/s.zchC6lsi +http://moviestore.zap2it.com/browse/MOVIES/MUSIC/s.zchC6lsi +http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/d13/b12,c,1f,18,18,,13,,1f,13,17,,1f,17, +http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/d14/b12,c,1f,18,18,,13,,1f,13,17,,1f,17, +http://209.50.251.176/~bb/ +http://tucows.energy.it/winnt/adnload/59163_30035.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=circundara&l=pt +http://vishvesha.tripod.com/4/068d.htm +http://www.hot.ee/timbsy/kass_files/pildikogu.html +http://www3.newstimes.com/archive99/jan2599/rga.htm +http://pub11.ezboard.com/fmarjoriesdmboardpostyourdmpedigreeshere.showMessage?topicID=21.topic +http://www.geocities.com/Heartland/Plains/4825/bennyn.html +http://citeseer.nj.nec.com/site/115145 +http://www.techsupplies.com/sleuth/17/1/40406/254200/ +http://ccmnet.xj.cei.gov.cn/10/b10/b1007/99-05-02/a5-02.asp +http://206.251.18.85/FEATURES/home_improvement/1999/10/01/fall_lawncare3.html +http://www.dulux.co.uk/UKRETAIL:1355333640:DFinity.1QJiP4jmPgimjKlA +http://cometweb01.comet.co.uk/do!tid=20&rtid=2&vsid=700&session=131985&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG5ubLZDXLZolLl3l5jbqLlci5XqVLkXsLkao4tloHbmlLoq5 +http://cometweb01.comet.co.uk/do!tid=20&rtid=1&vsid=700&session=131985&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplGGolLarZLq4fLpmiLXv-KmooLckYLoznGmpq0qsc0mojLbkYLozvGotc0ZdoLckYLozvGsmv0qmc0jXfLkVZLdocLkYoLzcj1XfkLVZXLqkXLjbzKcob5qroLkVrLoizKlZd5fjYHfklKkZlLjjbLoZbLpl51ubZLDXZLollK3ljLbqlKjXfLkkaHotl4obmLloqL +http://www.berliner-morgenpost.de/bm/inhalt/990928/berlin/story14.html +http://gb.toget.com.tw/article/printer_tool/19990825_3210_p1.html +http://sbtr42.sbsusa.com/ncsamples/base1.htm +http://halflife02.opasia.dk/cs3stats/players/_AMNeSIA_.html +http://mediate.magicbutton.net/do/session/625570/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/basket.cfm +http://mediate.magicbutton.net/do/session/625570/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/viewer.cfm +http://www.citythek.de/erfurt/rheinhyp/fsinhalt.htm +http://my.egroups.com/group/mall-komputer +http://www-bd.cricket.org/link_to_database/ARCHIVE/1997-98/PAK_IN_RSA/PAK_IN_RSA_JAN-APR1998_PAK-SQUAD.html +http://www-bd.cricket.org/link_to_database/GROUNDS/RSA/ST-GEORGE_PARK_PT-ELIZ/ +http://www-bd.cricket.org/link_to_database/ARCHIVE/1997-98/PAK_IN_RSA/PAK_RSA_T3_06-10MAR1998_ET_MR.html +http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/unfall/Gemeinsam/erreichenPartner/Gemeinsam/MarketingStrategie/Gemeinsam/versicherungen/gebaeude/Gemeinsam/Top-Darlehens-Konditionen/anforderungsformular.htm +http://www.online.kokusai.co.jp/Qa/V0043459/wrd/G800/qa/ +http://iland.tucows.com/win2k/adnload/59229_29990.html +http://iland.tucows.com/win2k/preview/144411.html +http://iland.tucows.com/win2k/adnload/38173_29963.html +http://www.arm.com/sitearchitek/armtech.ns4/8ab0ea422fba51238025691f00399e13/9cb09cb360a967848025691f004e28b2!OpenDocument&ExpandSection=6,13,12,-1 +http://ftp.uni-mannheim.de/languages/perl/CPAN/modules/by-authors/id/JMURPHY/?N=D +http://proam.golfonline.com/tours/2000/hooters/silversprings/scores2.html +http://ftp.du.se/pub/FreeBSD/branches/4.0-stable/src/games/grdc/ +http://ftp.du.se/pub/FreeBSD/branches/4.0-stable/src/games/pom/ +http://ftp.du.se/pub/FreeBSD/branches/4.0-stable/src/games/Makefile +http://www.artex.firenze.it/_qualitart/articoli/zoom/03651.htm +http://www.chaos.dk/sexriddle/m/k/v/b/p/ +http://www.chaos.dk/sexriddle/m/k/v/b/s/ +http://www.chaos.dk/sexriddle/t/j/d/n/n/ +http://www.daysinn.com/ctg/cgi-bin/DaysInn/media_center/AAAksrACwAAACCQAAM +http://tukela.heha.net/ys/ll/boyuan.htm +http://tukela.heha.net/ys/ll/jinciming.htm +http://genforum.genealogy.com/ai/messages/4299.html +http://genforum.genealogy.com/ai/messages/4221.html +http://genforum.genealogy.com/ai/messages/4225.html +http://www.linkclub.or.jp/~sticky/index1/diary/1999/199906.html +http://ww.egroups.com/subscribe/lexingtonkystrapon +http://chita.fi.upm.es/docs/info/en_US/a_doc_lib/motif/motifsg/About.htm +http://chita.fi.upm.es/docs/info/en_US/a_doc_lib/motif/motifsg/motifsg41.htm +http://chita.fi.upm.es/docs/info/en_US/a_doc_lib/motif/motifsg/motifsg43.htm +http://hakuba-net.gr.jp/guide/rest/spa_each/spa_2.html +http://yp.gates96.com/6/16/40/22.html +http://yp.gates96.com/6/16/40/44.html +http://yp.gates96.com/6/16/40/50.html +http://yp.gates96.com/6/16/40/69.html +http://yp.gates96.com/6/16/40/83.html +http://yp.gates96.com/6/16/41/49.html +http://yp.gates96.com/6/16/41/50.html +http://yp.gates96.com/6/16/41/67.html +http://yp.gates96.com/6/16/42/15.html +http://yp.gates96.com/6/16/42/51.html +http://yp.gates96.com/6/16/42/56.html +http://yp.gates96.com/6/16/43/8.html +http://yp.gates96.com/6/16/43/69.html +http://yp.gates96.com/6/16/43/71.html +http://yp.gates96.com/6/16/44/11.html +http://yp.gates96.com/6/16/44/51.html +http://yp.gates96.com/6/16/45/20.html +http://yp.gates96.com/6/16/45/43.html +http://yp.gates96.com/6/16/46/12.html +http://yp.gates96.com/6/16/46/25.html +http://yp.gates96.com/6/16/46/64.html +http://yp.gates96.com/6/16/47/42.html +http://yp.gates96.com/6/16/47/80.html +http://yp.gates96.com/6/16/48/54.html +http://yp.gates96.com/6/16/48/85.html +http://yp.gates96.com/6/16/49/51.html +http://yp.gates96.com/6/16/49/62.html +http://assgay.com/main.html?fuck.cock.gaysex +http://ring.yamanashi.ac.jp/pub/linux/linuxppc/contrib/software/System_Environment/Libraries/?S=A +http://computalynx.tucows.com/winme/adnload/138681_29976.html +http://computalynx.tucows.com/winme/adnload/138706_29992.html +http://computalynx.tucows.com/winme/adnload/138690_29990.html +http://computalynx.tucows.com/winme/adnload/138694_29981.html +http://iceberg.adhomeworld.com/cgi-win/redirect.exe/851857198 +http://link.fastpartner.com/do/session/600337/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mondosoft.php +http://link.fastpartner.com/do/session/600337/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/nordicliving.php +http://link.fastpartner.com/do/session/600337/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/create/learn.htm +http://www.linux.com/networking/network/applications/hardware/device/development/ +http://www.linux.com/networking/network/applications/hardware/device/Corel/ +http://www.linux.com/networking/network/applications/hardware/device/?kw_offset=50 +http://ftp.gigabell.net/debian/dists/unstable/main/binary-m68k/sound/?M=A +http://no.egroups.com/message/slfxpzur/36 +http://no.egroups.com/message/slfxpzur/38 +http://nuance.dhs.org/lbo-talk/0004/2286.html +http://www.jamba.de/KNet/_KNet-XEk8j1-ADd-136sq/showInfo-datenschutz.de/node.0/cde7f1uou +http://yp.gates96.com/2/37/60/0.html +http://yp.gates96.com/2/37/60/13.html +http://yp.gates96.com/2/37/61/24.html +http://yp.gates96.com/2/37/61/66.html +http://yp.gates96.com/2/37/62/5.html +http://yp.gates96.com/2/37/62/31.html +http://yp.gates96.com/2/37/63/31.html +http://yp.gates96.com/2/37/63/43.html +http://yp.gates96.com/2/37/63/48.html +http://yp.gates96.com/2/37/63/60.html +http://yp.gates96.com/2/37/63/88.html +http://yp.gates96.com/2/37/64/62.html +http://yp.gates96.com/2/37/64/74.html +http://yp.gates96.com/2/37/65/0.html +http://yp.gates96.com/2/37/66/20.html +http://yp.gates96.com/2/37/67/41.html +http://yp.gates96.com/2/37/68/2.html +http://yp.gates96.com/2/37/68/50.html +http://yp.gates96.com/2/37/69/15.html +http://yp.gates96.com/2/37/69/41.html +http://yp.gates96.com/2/37/69/47.html +http://yp.gates96.com/2/37/69/60.html +http://yp.gates96.com/2/37/69/75.html +http://yp.gates96.com/2/37/69/76.html +http://gettosdownloads.subportal.com/sn/Palm_Pilot/Games/12428.html +http://news.novgorod.ru/read/65/2000/10/27/10/49 +http://www.schwan.de/links-biografie.html +http://www.fogdog.com/cedroID/ssd3040183124617/cgi-bin/MyFogdog +http://www.nrk.no/finnmark/x27_6_97/nyh9.htm +http://www.aelita.net/products/news/services/sitemap/~archive/Download_redirect/company/Copyright.htm +http://www.staroriental.net/nav/soeg_c/ihf,aol,n15,149,TVB香港小姐2000.html +http://members.xoom.com/agent187/politics.htm +http://sunsite.org.uk/public/packages/perl/collections/cis.ufl/comp.lang.perl.announce/1998-03/724 +http://www.thestateofcolorado.com/gcecommercialsales.html +http://ftp.du.se/pub/redhat/rawhide/sparc/RedHat/RPMS/?M=A +http://www.linux.com/networking/network/community/trade_show/magazine/open_source/ +http://www.linux.com/networking/network/community/trade_show/magazine/Slashdot/ +http://www.linux.com/networking/network/community/trade_show/magazine/investors/ +http://scifi.emerchandise.com/browse/TV/PIN/b.TV/s.KkOtzPMn +http://scifi.emerchandise.com/browse/DILBERT/_/b.TV/s.KkOtzPMn +http://scifi.emerchandise.com/browse/DR.KATZ/_/b.TV/s.KkOtzPMn +http://scifi.emerchandise.com/browse/FRIENDS/_/b.TV/s.KkOtzPMn +http://scifi.emerchandise.com/browse/FUTURAMA/_/b.TV/s.KkOtzPMn +http://scifi.emerchandise.com/browse/LOIS-CLARK/_/b.TV/s.KkOtzPMn +http://scifi.emerchandise.com/browse/SPEEDRACER/_/b.TV/s.KkOtzPMn +http://scifi.emerchandise.com/browse/THUNDERCATS/_/b.TV/s.KkOtzPMn +http://scifi.emerchandise.com/browse/WCW/_/b.TV/s.KkOtzPMn +http://www.railion.de/home/db_reise_touristik/region/bremen/db_rt_firmenreisedienst_reisezentrum_hb.shtml +http://pegasus.infor.kanazawa-it.ac.jp/~hara/bsd4.1-release/D/N_GETFLAG_NET.html +http://yp.gates96.com/5/54/20/19.html +http://yp.gates96.com/5/54/21/5.html +http://yp.gates96.com/5/54/21/42.html +http://yp.gates96.com/5/54/21/60.html +http://yp.gates96.com/5/54/21/69.html +http://yp.gates96.com/5/54/21/81.html +http://yp.gates96.com/5/54/21/96.html +http://yp.gates96.com/5/54/22/6.html +http://yp.gates96.com/5/54/22/29.html +http://yp.gates96.com/5/54/22/33.html +http://yp.gates96.com/5/54/22/64.html +http://yp.gates96.com/5/54/22/83.html +http://yp.gates96.com/5/54/22/94.html +http://yp.gates96.com/5/54/22/98.html +http://yp.gates96.com/5/54/23/17.html +http://yp.gates96.com/5/54/23/41.html +http://yp.gates96.com/5/54/24/2.html +http://yp.gates96.com/5/54/24/5.html +http://yp.gates96.com/5/54/24/9.html +http://yp.gates96.com/5/54/24/90.html +http://yp.gates96.com/5/54/25/89.html +http://yp.gates96.com/5/54/26/41.html +http://yp.gates96.com/5/54/27/83.html +http://yp.gates96.com/6/59/21/52.html +http://yp.gates96.com/6/59/22/63.html +http://yp.gates96.com/6/59/23/37.html +http://yp.gates96.com/6/59/23/95.html +http://yp.gates96.com/6/59/24/3.html +http://yp.gates96.com/6/59/24/9.html +http://yp.gates96.com/6/59/25/26.html +http://yp.gates96.com/6/59/25/55.html +http://yp.gates96.com/6/59/25/84.html +http://yp.gates96.com/6/59/25/94.html +http://yp.gates96.com/6/59/26/53.html +http://yp.gates96.com/6/59/26/73.html +http://yp.gates96.com/6/59/27/15.html +http://yp.gates96.com/6/59/27/29.html +http://yp.gates96.com/6/59/27/49.html +http://yp.gates96.com/6/59/27/97.html +http://yp.gates96.com/6/59/28/31.html +http://yp.gates96.com/6/59/28/32.html +http://yp.gates96.com/6/59/28/39.html +http://yp.gates96.com/6/59/28/98.html +http://yp.gates96.com/6/59/29/22.html +http://yp.gates96.com/6/59/29/83.html +http://www.gbnf.com/genealogy/royal92/html/d0016/I1249.HTM +http://www.gbnf.com/genealogy/royal92/html/d0018/I734.HTM +http://hifichoice.co.uk/archive/perl/193_printreview.htm +http://hifichoice.co.uk/archive/perl/313_printreview.htm +http://www.highwired.net/Paper/UniversalNav/Redirect/0,5314,2623-7802,00.html +http://www.mrlinux.notrix.de/ +http://www.ucalgary.ca/UofC/faculties/medicine/CHS/nhrdb/area/anat/fr.htm +http://home.pchome.com.tw/tv/pili0614/xing-sh/capric/capric47.htm +http://home.pchome.com.tw/tv/pili0614/xing-sh/capric/capric21.htm +http://home.pchome.com.tw/tv/pili0614/xing-sh/capric/caf26.htm +http://user.chollian.net/~pleiad7s/josun/3-37.htm +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=233&discrim=81,3,15 +http://mediate.magicbutton.net/do/session/625571/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/aboutus/index.cfm +http://www.telecombrokers.com/q/001p/atn8/2aS9DLAZRXc.htm +http://www.telecomrefunds.com/q/001p/atn8/4SeFiiXvs2A.htm +http://soho.nascom.nasa.gov/solarsoft/soho/lasco/lasco/data_anal/data/9701/?M=A +http://members.xoom.com/mindnare +http://people.freenet.de/TheChamp/nachhilfe.htm +http://people.freenet.de/TheChamp/cheats.htm +http://www.zinezone.com/movies/1,4003,1040-23080,00.html +http://kulichki-win.rambler.ru/moshkow/TURIZM/kutsajo6.txt_with-icons.html +http://www.linux.com/networking/network/release/availability/hardware/?printable=yes +http://www.linux.com/networking/network/release/availability/hardware/applications/ +http://www.shopworks.com/flmp/index.cfm/action/cart/userid/000D1850-2F00-19FE-9038010B0A0ADCF2 +http://shrike.depaul.edu/~afranz/multimedia/?S=A +http://totalsports.net/news/20001014/bbo/mlb/sea/001014.0024.html +http://totalsports.net/news/20001009/bbo/mlb/sea/001009.0039.html +http://totalsports.net/news/20001006/bbo/mlb/sea/001006.0354.html +http://cometweb01.comet.co.uk/do!session=131986&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkkHbqpLZXmLbkZHljlKaltLkilLXalKfkaLbukKeqjLi1 +http://html.tucows.ciaoweb.it/adnload/berglincondlbind.html +http://www.tiscover.com/1Root/Interessante_Region/127151/sportfreizeit/m_sportfreizeit.wm_sport_freibad..1.html +http://f24.parsimony.net/forum54080/messages/97.htm +http://f24.parsimony.net/forum54080/messages/68.htm +http://www.amulation.com/md-l-archive/199702/msg00210.html +http://netpower.tucows.com/winnt/adnload/2821_29573.html +http://kutschen.de/Schoner/Info-d/literature/collections/collections/Geschichte/ +http://webtools.myschoolonline.com/page/0,1871,0-353-38-44534,00.html +http://www.linux.com/networking/network/help/hardware/open_source/GNOME/ +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=12,25,26,17,24 +http://retailer.gocollect.com/do/session/1912664/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/exclusives.asp +http://retailer.gocollect.com/do/session/1912665/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/news/index.asp +http://ring.nihon-u.ac.jp/pub/doc/jpnic/members/WORLDNET/members.txt +http://www.123webagent.com/q/001p/atn8/zImXxARDSm.htm +http://www.tu-chemnitz.de/~jflo/DOSDemos/cost_b.txt +http://yp.gates96.com/5/54/27/97.html +http://yp.gates96.com/5/54/28/23.html +http://yp.gates96.com/5/54/29/33.html +http://yp.gates96.com/5/54/29/64.html +http://rex.skyline.net/html/Medical_Equipment.html?224,software,equipment,agriculture,science +http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/OnlineCitiesSM/OnlineCitiesInteractiveCityGuides/bd434602591 +http://www.dispatch.co.za/1998/05/29/business/BA.HTM +http://www.dispatch.co.za/1998/05/29/business/JSE.HTM +http://retailer.gocollect.com/do/session/1912663/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/site_tour/index.asp +http://retailer.gocollect.com/do/session/1912663/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/about.asp +http://retailer.gocollect.com/do/session/1912663/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/contact.asp +http://www.hblb.org.uk/hblbweb.nsf/$Pages/NewsArchive1!OpenDocument&ExpandSection=8,9,3,6,1,11,13 +http://retailer.gocollect.com/do/session/1912620/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/gifts/gift_floor.asp +http://genforum.genealogy.com/ga/messages/4583.html +http://genforum.genealogy.com/ga/messages/4582.html +http://genforum.genealogy.com/ga/messages/4570.html +http://genforum.genealogy.com/ga/messages/4561.html +http://genforum.genealogy.com/ga/messages/5575.html +http://ftp.gnu.org/software/sather/ICSI_Sather/whoswho.html +http://dk.egroups.com/group/GHSBasketball +http://dk.egroups.com/group/lovebasket +http://biblioteca.upv.es/bib/doc/doc_fisbd/10/131276//V/1820145/0////25/S/MLTPAID +http://www.qth.net/archive/packfr/200009/20000921.html +http://213.36.119.69/do/session/152975/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/preparer/sante.htm +http://ftp.lip6.fr/pub8/FreeBSD/FreeBSD-current/ports/emulators/mtools/ +http://ftp.lip6.fr/pub8/FreeBSD/FreeBSD-current/ports/emulators/sim6811/ +http://fyi.cnn.com/ASIANOW/asiaweek/97/0328/aa7.html +http://pub21.ezboard.com/fbeauxbatonfrm32.showMessage?topicID=6.topic +http://www.tente.de/us/produkte/produkteigenschaften/aa000001609.htm +http://www.tente.de/us/produkte/produkteigenschaften/aa000001630.htm +http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/net/rboot/?N=D +http://www.geocities.co.jp/Technopolis-Mars/3952/link.html +http://saleonall.com/cat/software/reference/5112/969434/advanced-search.html +http://www.jazzbude.de/EddieLockjawDavis/B000026F24.htm +http://www6.freeweb.ne.jp/art/iftaka/art/ +http://www.canit.se/(ftp,irc,k15,www)/support/kontakt.html +http://www.mirror.edu.cn/res/sunsite/pub/academic/chemistry/iupac/Download/publications/pac/special/0199/ +http://cinemabilia.de/details/katnr/234764/ +http://polygraph.ircache.net:8181/services/design/http_-2www.infolane.com/dallas.htm +http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/games/crafty-open-medium/pkg-comment +http://uk.dir.yahoo.com/Education/Primary_and_Secondary/Schools/Middle_Schools/By_Region/U_S__States/Virginia/Complete_List/ +http://yp.gates96.com/6/2/10/13.html +http://yp.gates96.com/6/2/10/41.html +http://yp.gates96.com/6/2/10/83.html +http://yp.gates96.com/6/2/11/51.html +http://yp.gates96.com/6/2/11/89.html +http://yp.gates96.com/6/2/12/22.html +http://yp.gates96.com/6/2/12/58.html +http://yp.gates96.com/6/2/12/62.html +http://yp.gates96.com/6/2/12/79.html +http://yp.gates96.com/6/2/13/19.html +http://yp.gates96.com/6/2/13/51.html +http://yp.gates96.com/6/2/13/64.html +http://yp.gates96.com/6/2/14/75.html +http://yp.gates96.com/6/2/15/91.html +http://yp.gates96.com/6/2/16/83.html +http://yp.gates96.com/6/2/18/15.html +http://yp.gates96.com/6/2/18/54.html +http://yp.gates96.com/6/2/19/35.html +http://yp.gates96.com/6/2/19/68.html +http://yp.gates96.com/6/2/19/75.html +http://yp.gates96.com/6/2/19/82.html +http://yp.gates96.com/6/2/19/87.html +http://www.chaos.dk/sexriddle/z/w/c/b/v/ +http://itcareers.careercast.com/texis/it/itjs/+bwwBmeg5986wwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewhTwdGpdGwBna5dhBiwGnawppcoqwBodD5amnVncdpMnDBaiw5roDtBdDamwBwaoDqc1moDtamn5otDanLpnGonDqnawDwcO5o5aMFqhTfR20Dzme8hwwwpBmeMWD86etmwww5rmeHdwwwBrmeZpwww/jobpage.html +http://itcareers.careercast.com/texis/it/itjs/+3wwBmeV6D86euhwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewhTwdGpdGwBna5dhBiwGnawppcoqwBodD5amnVncdpMnDBaiw5roDtBdDamwBwaoDqc1moDtamn5otDanLpnGonDqnawDwcO5o5aMFqhTfR20Dzme8hwwwpBmeMWD86etmwww5rmeidwwwBrmeZpwww/jobpage.html +http://itcareers.careercast.com/texis/it/itjs/+iwwBmeiWD86zwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewhTwdGpdGwBna5dhBiwGnawppcoqwBodD5amnVncdpMnDBaiw5roDtBdDamwBwaoDqc1moDtamn5otDanLpnGonDqnawDwcO5o5aMFqhTfR20Dzme8hwwwpBmeMWD86etmwww5rme3dwwwBrmeZpwww/jobpage.html +http://sanming.ebigchina.com/ +http://www.bestinfo.net.cn/bsti_kjxn/gn/guoneifagui/17hebei3.htm +http://www.detroitfreepress.com/photos/umgallery/g8/g8.1.htm +http://www.detroitfreepress.com/photos/umgallery/g8/g8.3.htm +http://xgll.soyou.edu.cn/item/2000-04-07/43733.html43733.html +http://se.egroups.com/message/bunyan/903 +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/KIRJASTO-+JA+TIETOPALVELUT/p%E4ij%E4t-h%E4meen+koulutuskonserni/tietokannat/kirjastot/viitetietokannat/ +http://channel.nytimes.com/2000/05/19/technology/ +http://www.ycwb.com.cn/gb/2000/04/15/jrzk/jrms/5.html +http://no.egroups.com/message/healthdigest/97 +http://no.egroups.com/message/healthdigest/119 +http://www.securitiestimes.com.cn/199909/10/ssgs_19990910007_xw.html +http://javatest.a-net.nl/servlet/pedit.Main/http://www.dohistory.org/interests/i_teaching.html +http://www.buybuddy.com/sleuth/27/1/11009/518452/ +http://www.buybuddy.com/sleuth/27/1/11001/518452/ +http://www.buybuddy.com/sleuth/27/1/11004/518452/ +http://ring.omp.ad.jp/archives/text/CTAN/fonts/metrics/tools/?D=A +http://www.jamba.de/KNet/_KNet-CIq8j1-hEd-138qo/showInfo-special1.de/node.0/cde7f1uou +http://cafe4.daum.net/Cafe-bin/Bbs.cgi/sdfamilypds/qry/zka/B2-kBI7p/qqatt/^ +http://www.insurequotes.com/oh3/1AB2.html +http://www.egroups.com/login.cgi?login_target=%2Fmessage%2FWHKPNews%2F190 +http://www.linux.com/networking/network/performance/reliability/linux/?printable=yes +http://preview.egroups.com/message/tattoos88/32 +http://ring.shibaura-it.ac.jp/archives/NetBSD/packages/1.5/cobalt/math/ +http://ring.shibaura-it.ac.jp/archives/NetBSD/packages/1.5/cobalt/sysutils/ +http://in.us.biz.yahoo.com/z/a/p/prgx/prgx_f0149933.html +http://www.backflip.org/members/robeeena/6484057 +http://www.accesslasvegas.com/shared/health/adam/ency/article/003481res.html +http://library.cuhk.edu.hk/search*chi/dAir+--+Pollution+--+China+--+Hong+Kong./dair+pollution+china+hong+kong/-17,1,1,B/frameset&F=dair+pilots+united+states+biography&7,,7 +http://innopac.lib.tsinghua.edu.cn:2082/search*chi/cTM-62+C288/ctm-62+c288/-5,-1,,B/browse +http://www.nd.edu/~rarebook/coins/bnl-mg/BNL-index-B/BNL-index-BU/BNL-index-bursley.html +http://home.kimo.com.tw/lcl566/布告欄.htm +http://www.northampton.ac.uk/cgi-bin/liberation/betsie/betsie.pl/1005/www.northampton.ac.uk/stu/commdev/chap.htm +http://www.peopledaily.co.jp/199905/11/newfiles/col_990511001040_zyxw.html +http://missuniverse.studiostore.com/browse/PAGEANTS/CAP/s.pJicQfVY +http://ftp.up.pt/Linux/Linus/kernel/v2.1/patch-html/patch-2.2.0-pre6/linux_drivers_misc_parport_procfs.c.html +http://ftp.up.pt/Linux/Linus/kernel/v2.1/patch-html/patch-2.2.0-pre6/linux_drivers_sound_es1370.c.html +http://ftp.up.pt/Linux/Linus/kernel/v2.1/patch-html/patch-2.2.0-pre6/linux_include_asm-arm_arch-vnc_system.h.html +http://ftp.up.pt/Linux/Linus/kernel/v2.1/patch-html/patch-2.2.0-pre6/linux_include_asm-arm_dec21285.h.html +http://www.gbnf.com/genealog2/dezarn/html/d0004/I1071.HTM +http://dogbert.wu-wien.ac.at/UniverCD/cc/td/doc/product/access/acs_mod/cis4000/4000/c4000him/22693/ +http://www.uralweb.ru:8081/stats/who +http://www.rrz.uni-hamburg.de/biologie/b_online/kegg/kegg/db/ligand/cpdhtm/C04881.html +http://www.la.digitalcity.com/fortwaynein/health/conditions.dci?condition=badbreath +http://ibelong.digitalcity.com/uticaarea/guygirlmidwest/main.dci?page=guyssept2000 +http://moviestore.zap2it.com/browse/MOVIES/JACKET/s.jNIqMaLO +http://www.doc.ic.ac.uk/~ace97/whoknows/whoknows.cgi?topic=applescript +http://www.doc.ic.ac.uk/~ace97/whoknows/whoknows.cgi?topic=prolog +http://www.doc.ic.ac.uk/~ace97/whoknows/whoknows.cgi?topic=samba +http://209.52.189.2/discussions.cfm/3031/1757-1776 +http://209.52.189.2/discussions.cfm/3031/757-776 +http://209.52.189.2/discussions.cfm/3031/57-76 +http://itcareers.careercast.com/texis/it/itjs/+DwwBmeOWD86OwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewVtqDhdGMwBodDanDtoDnnGaoDBntGwBodDaMwDwtnMnDBanDBnGpGo5na5nGVnG5anLpnGonDqnaDnBidGAa5O5BnMawppcoqwBodDaMFqhTfR20DzmeitwwwpBme2WD86e1xwww5rmenDwwwBrmeZpwww/morelike.html +http://volunteersolutions.org/austin/volunteer/opp/one_100634_printer_detailed.html +http://www.changeyourhome.net/PropertiesToLet/WithamLet/LOO606/pages/DCP_0421_JPG.htm +http://www.users.qwest.net/~eagletac/ +http://www.motorradversand.de/cgi-bin/bekleidung/integralhelm/NG94G933/beurteilung.htm +http://stol.list.ru/catalog/25440.html +http://stol.list.ru/catalog/25301.html +http://www.eveclub.com/cgi-bin/eveclub.front/972959436300/Club/start/1000000 +http://www.gohamptonroads.com/sportsticker/events/06-12/0447.CWS.FSUTEXCURRENT.html +http://genforum.genealogy.com/merriman/messages/228.html +http://genforum.genealogy.com/merriman/messages/223.html +http://genforum.genealogy.com/merriman/messages/163.html +http://genforum.genealogy.com/merriman/messages/495.html +http://genforum.genealogy.com/merriman/messages/232.html +http://genforum.genealogy.com/merriman/messages/351.html +http://genforum.genealogy.com/merriman/messages/324.html +http://genforum.genealogy.com/merriman/messages/510.html +http://genforum.genealogy.com/merriman/messages/57.html +http://genforum.genealogy.com/merriman/messages/12.html +http://genforum.genealogy.com/merriman/messages/263.html +http://genforum.genealogy.com/merriman/messages/15.html +http://retailer.gocollect.com/do/session/1912656/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus53832/eus53833/eus328722/eus129553/eus129564/ +http://cma.arabia.com:8008/jordan/article/print/arabic/0,5195,3750,00.html +http://webhome.ai-lab.fh-furtwangen.de/for_local_use_only/CD-TMFUMV/daten/mathema/01121m/?N=D +http://store1.europe.yahoo.com/brink2/2000000141305.html +http://www.contractorresource.com/Vermont/Westford/Architects.shtml +http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/3d-service/Top-Darlehens-Konditionen/Startseite/Gemeinsam/versicherungen/gebaeude/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Top-Darlehens-Konditionen/anforderungsformular.htm +http://free.polbox.pl/p/pphromar/OFERTA.htm +http://www.burstnet.com/ads/ad5788a-map.cgi/tr00010005_12 +http://www.private-immobilien-boerse.de/ungarn/verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/Immolink/3d-service/IIM-Teil/Startseite/froben.htm +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/KIRJASTO-+JA+TIETOPALVELUT/ammattikorkeakoulukirjastot/lahti/toisen+asteen+koulutus/ammattikorkeakoulut/ +http://www.geomag.com/pirates/html/4books.html +http://www.lithoquoter.com/Scripts/WebObjects.exe/Printers.woa/559420000049560000009753100000548302/main.wo/7016200000448302/0/-/prime +http://www.adventurecentre.com/Framesets/intrside/csh.htm +http://mitglied.tripod.de/vox0/negrostodos/de_sexo_dobles.html +http://www.sasinstitute.com/offices/asiapacific/taiwan/whatsnew/art1999/art091601.html +http://oss.sgi.com/cgi-bin/cvsweb.cgi/gdb/sim/ppc/Attic/ppc-opcode-complex?only_with_tag=HEAD +http://www.yorosiku.net:8080/-_-http://www.suntory.co.jp/eco/what.html +http://www.yorosiku.net:8080/-_-http://www.suntory.co.jp/culture/birds/welcome.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/linux/music/misc/unitest/lit/pushkin.html +http://sunsite.uakom.sk/tucows/adnload/69291_28346.html +http://members.tripod.com/yamabito2/gardening_000416_0502_n22.htm +http://www.affiliate.hpstore.hp.co.uk/do/session/380775/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/REGISTRATION/entry.asp +http://www.onsemi.com.cn/pub/prod/0,1193,products1_Disty_order=MC100H642FNR2,00.html +http://perso.wanadoo.fr/michel.brunel/Infographie/content/contacts.htm +http://mindit.netmind.com/proxy/http://www.film.com/RGI/FC.(/watch/broadband.jhtml).def...RGI//reviews/features/mow/blairwitch2.jhtml +http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/1997-98/jmc1/labs/Ex09/gv197/?N=D +http://www-d0.fnal.gov/d0dist/dist/releases/test/l3fmuo_unpack/rcp/?N=D +http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/44dc495cc7534894862566fe00127751!OpenDocument&ExpandSection=7,10,4,9 +http://www.zdnet.com/gamespot/filters/printerfriendly/0,10855,2531809-95,00.html +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/asiasanahaku/el%25C3%2583%25C2%25A4kelaitokset/vakuutuslaitokset/rahoitus/el%E4kerahastot/ +http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/fthteavfo2-96.html +http://polygraph.ircache.net:8181/http_-2ESPN.SportsZone.com/nfl/mall/http_-2www.excite.com/http_-2www.exploreuw.com/cards/ +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=cosido&l=pt +http://fazmali.bigsmart.com/mall/allinone/comparison_chart_new.html +http://sunsite.ualberta.ca/pub/Mirror/gnu/etc/ORDERS +http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00347.html +http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00363.html +http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00482.html +http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00483.html +http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00499.html +http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00508.html +http://www.bumppo.net/lists/realbasic-dr/1998/12/msg00518.html +http://it.sports.yahoo.com/000911/90/of8m.html +http://ftp.support.compaq.com/public/dunix/v3.2g/TruCluster_V1.0/?M=A +http://ftp.support.compaq.com/public/dunix/v3.2g/TruCluster_V1.0/ReleaseNotes.pdf +http://www.quzhou.gov.cn/flfg.nsf/0a043ae26eb50247002564640039f21d/e3cb86464a9f805a002564ac0039422d!OpenDocument&ExpandSection=5,1,9 +http://www.quzhou.gov.cn/flfg.nsf/0a043ae26eb50247002564640039f21d/e3cb86464a9f805a002564ac0039422d!OpenDocument&ExpandSection=6,1,9 +http://polygraph.ircache.net:8181/Keyboards/http_-2www.sky.net/~robertf/http_-2domino.findyn.com/fdi.nsf/http_-2home.netscape.com/ +http://www.nv.cc.va.us/home/jakim +http://itcareers.careercast.com/texis/it/itjs/+nwwBmJe0B-deVmwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewXhmoBGnaqdGpdGwBodDaDnBidGAoDta5O5BnM5amo5BGox1BnmanDtoDnnGaMw55wqr15nBB5a51ppdGBamnVncdpaBn5BaMFqhTfR20DzmeQtwwwpBme-WD86eyxwww5rmesdwwwBrmeZpwww/morelike.html +http://itcareers.careercast.com/texis/it/itjs/+MwwBme7WD86JwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewXhmoBGnaqdGpdGwBodDaDnBidGAoDta5O5BnM5amo5BGox1BnmanDtoDnnGaMw55wqr15nBB5a51ppdGBamnVncdpaBn5BaMFqhTfR20DzmeQtwwwpBme-WD86eyxwww5rme4dwwwBrmeZpwww/jobpage.html +http://my.dreamwiz.com/hideyu/couple/couplemain.htm +http://www.noras.bizland.com/top_pages/top_gen_1.htm +http://www.nomade.fr/catm6/entreprises_economi/electricite_electro/electricite/composants_fournitu/index5.shtml +http://www.staroriental.net/nav/soeg_c/ihf,aeb,s0,363,黎明.html +http://online.excite.de/lifestyle/katalog/27990 +http://www.linux.com/networking/network/performance/install/news/Linux/ +http://www.linux.com/networking/network/performance/install/news/kernel/ +http://tw.yahoo.com/Regional/Countries_and_Regions/China/Provinces__Regions_and_Municipalities/Shandong/Cities_and_Towns/He_Zhe/Government/ +http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/ReadAdverData/2000-10-29/12/972792271154.txt +http://independent-sun-01.whoc.theplanet.co.uk/news/Sport/Football/Bradford/ipswich221000.shtml +http://www.emis.de/journals/EJDE/Monographs/Volumes/Monographs/1996/05-Hetzer/Hetzer-tex +http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/arch/arm/def-configs/assabet?only_with_tag=LINUX-2_4_0-test1 +http://www.nrk.no/finnmark/x22_8_96/arkivet/ +http://pelit.saunalahti.fi/.9/telenation/valveworld/games/Half-Life/?S=A +http://pelit.saunalahti.fi/.9/telenation/valveworld/games/Half-Life/_Dedicated.txt +http://pelit.saunalahti.fi/.9/telenation/valveworld/games/Half-Life/_Mods.txt +http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/games/bugsx/?N=D +http://ring.yamanashi.ac.jp/archives/NetBSD/packages/1.4.1/sparc/databases/ +http://citeseer.nj.nec.com/cidcontext/260967 +http://members.tripod.co.jp/jojo6251/sasamineHP.htm +http://www.segodnya.ru/w3s.nsf/Archive/2000_96_life_vrez_noname2.html +http://www.citybrasil.com.br/rs/ivora/cidadefala.htm +http://web62.com/engl/fashion/pompoes/nav.htm +http://www.jufo.com/netcenter/house/item/bglz/477_lmt.html +http://gatekeeper.dec.com/pub/BSD/FreeBSD/FreeBSD-current/src/gnu/libexec/uucp/uupick/ +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/lelandsystems.stanford.edu/announce/pubsw/ +http://www.schleuse.de/maschine/World/Deutsch/Kultur/Literatur/Autoren_und_Autorinnen/D/Dominik,_Hans/ +http://www.elsur.cl/archivo/mayo2000/8mayo2000/elsur/espectaculos/ind2.php3 +http://www.jpc-neuheiten.de/2881737.htm +http://www.digitaldrucke.de/(aktuell,arbeitsvermittlung,computer,creaccess,gaestebuch,hilfe,hilfeallgemein,individualverkehr,kultur,onlineservice,schnellübersicht,sense,veranstaltungen,verkehr,von)/_fort/html/themen/computer/soft/links/softquad.htm +http://bbs.syu.ac.kr/NetBBS/Bbs.dll/groupbbs031/rcm/zka/B2-kB23m/qqo/004A/qqatt/^ +http://www.city-map.de/city/print/nl/Niedersachsen/Osterholz/actueel_&_nieuw/onroerendgoed_&_woningen/k012700681.html +http://members.tripod.com/sultana_2/thiskindalife.htm +http://members.tripod.com/sultana_2/thisthing.htm +http://members.tripod.com/sultana_2/believeinthis.html +http://tulips.ntu.edu.tw/search*chi/m586.47+4412/m586.47+4412/-5,-1,0,B/frameset&F=m586.48+0146&1,1 +http://btp1da.phy.uni-bayreuth.de/ftp/pub/FreeBSD/ports/www/linbot/?S=A +http://pub6.ezboard.com/fbiblediscussionandsharingparableorversesharing.subscribeUnregisteredToTopic?topicID=113.topic +http://www.cs.rit.edu/usr/local/pub/atk/course_descr/481.dir/?M=A +http://neptune.guestworld.com/gear/gateway.cfm?action=manage&owner=Nickdays +http://retailer.gocollect.com/do/session/1912673/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/shipping_policy.asp +http://tucows.minorisa.es/adnload/001-006-009-001.html +http://www.cwi.nl/~jack/spunk/texts/pubs/sekhmet/8/sp001225.txt +http://homepage.yesky.com/33554432/36700160/103524.htm +http://cvs.php.net/viewcvs.cgi/php3/functions/gd.c?annotate=1.65&sortby=log +http://www.genexchange.com/deathreg.cfm?state=nc&county=pasquotank +http://www.genexchange.com/schoolreg.cfm?state=nc&county=pasquotank +http://www.tagnet.org/uva/Eventos/Emergencia99/Fotos/FotosOccidente01.htm +http://itcareers.careercast.com/texis/it/itjs/+CwwBmue0B-dswwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew6nmoBGnaqdGpdGwBodDa5oBnaoDqc1mnanLqnca15naGn31oGnma5Aocc5awqqd1DBoDtamn5oGwxcnaMFqhTfR20Dzme9twwwpBme+6D865www5rmesDwwwBrmeRdwww/jobpage.html +http://retailer.gocollect.com/do/session/1912638/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp +http://kulichki-win.rambler.ru/inkwell/bio/zitinsk.htm +http://www.thestateofcolorado.com/e1tatpiercing.html +http://www.pc-schulmusik.purespace.de/seminar/START.HTM +http://www.feeler.nl/rubrieken/index.xml/818004059 +http://ftp.dartmouth.edu/~mcb/faculty/fiering.html +http://ustlib.ust.hk/search*chi/cHD30.28+.C56+1995/chd+++30.28+c56+1995/-17,-1,0,E/2browse +http://herndon1.sdrdc.com/cgi-bin/com_detail/C00325258/ +http://www.linux.com/networking/network/industry/press_release/linuxworld/Linux/ +http://mindit.netmind.com/proxy/http://www.abc.net.au/children/bananas/dreamtime/page1.htm +http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959860700/Catalog/1000188 +http://207.87.5.36/pc/news/saa7108/ +http://musicalproducts.asiaep.com/muspro5a.htm +http://www.trax.nilex.co.uk/trax.cgi/A1S/A1U/1AL/A1S/A2S/C1L/ +http://www.cjga.com/JamMoviesCanadianO/obsessed.html +http://www.symantec.se/region/jp/support/mac/utiliti/num352/num352up.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=catapultaras&l=pt +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=catapultai&l=pt +http://no.egroups.com/group/Chenzhou-families +http://www.teenplatinum.com/barelylegal/anal-sexass/young-adultbest-friends/hardaction/slutsnude/red-toenail-polishfoot-fetish/toenail-polish.html +http://beatles.sonicnet.com/allmusic/ai_links.jhtml?ai_id=1000 +http://www.luecos.de/wow/art/fu_satir_30142.html +http://nw1.newsweek.com/nw-srv/inetguide/iguide_4505343.html +http://www.si.uniovi.es/mirror/squid/mail-archive/squid-users/200002/0637.html +http://sunsite.compapp.dcu.ie/pub/perl/modules/by-category/08_User_Interfaces/Tk/NI-S/Tk402.004.readme +http://www.amzn.com/exec/obidos/tg/feature/-/44435/ +http://www.amzn.com/exec/obidos/tg/feature/-/2869/ +http://www.hanter21.co.kr/NetBBS/Bbs.dll/dhliter02/lst/qqeq/1/zka/B2-kBINo/qqo/PRMY +http://www.linux.com/networking/network/help/email/web/security/ +http://www.linux.com/networking/network/help/email/web/Slackware/ +http://www.linux.com/networking/network/help/email/web/e-commerce/ +http://www.linux.com/networking/network/help/email/web/release/ +http://debian.tod.net/debian/dists/stable/contrib/binary-all/web/?S=A +http://ftp.sunet.se/pub/FreeBSD/ports/ports-current/devel/fastcrc/pkg-descr +http://www.trax.nilex.co.uk/trax.cgi/A1C/A2S/B1S/B3S/B1S/C1U/ +http://www.trax.nilex.co.uk/trax.cgi/A1C/A2S/B1S/B3S/B1S/C1D/ +http://rex.skyline.net/html/Metalurgy.html?266,supplies,hobbies,painting,arts +http://infoseek.wunderground.com/geo/BigtempBannerPromo/US/CO/Cortez.html +http://www.kaernten.at/1Root/Kontinent/6/Staat/7/Bundesland/17/Ort/820/Pension/304806/Homepage/h_homepage...1.html +http://dellnet.excite.de/nachrichten/katalog/6663 +http://www.users.skynet.be/eloymarc/infomobil2/sobeen13.htm +http://www.outpersonals.com/cgi-bin/w3com/pws/out/hXRIA9gT9KNJakAdbkyW2SaEFRyXAJCa2tpUDiYF1BHxbpYG0_go-roWL4XPWFopknXRvCQG4gmCQLNceomD4GJpJ4hvR4eYeQbgN2CFeSPhxakPczINPvttFOQK3IDjjmYz66jR +http://www.outpersonals.com/cgi-bin/w3com/pws/out/_cRIZWRepq55uG8fC8ijlWOJrkBzrY7AXdlxz7fhosBeDRNPqhpYFY3uMBgWodvLAPXL2sPRQ7GqKF66xzHYxHZISDRz4dfZjEKnEShXdRFhDxBcOPx4ufr7uXHA0sNvRvMq6Z1j +http://polygraph.ircache.net:8181/health/http_-2cyril.com/http_-2www.americanexpress.com/corp/consumerinfo/privacy/privacystatement.shtml +http://polygraph.ircache.net:8181/health/http_-2cyril.com/arch.html +http://www.villager.com/ctg/cgi-bin/Villager/home/AAAksrACwAAACCOAAI +http://www.medoc-ias.u-psud.fr:81/synoptic/gif/950829/?D=A +http://members.tripod.lycos.nl/unlimited_pagez/pld2.html +http://www.thisislancashire.co.uk/lancashire/archive/1996/01/25/FEATURES0VQ.html +http://members.tripod.com/rebelstrange/buxoms.html +http://fi.egroups.com/message/TEZKo/3 +http://www.yamato.jp.ibm.com/servers/eserver/xseries/about/availa.html +http://polygraph.ircache.net:8181/NetworkInfo/http_-2www.thepetsupply.com/3d/web.html +http://polygraph.ircache.net:8181/NetworkInfo/http_-2www.thepetsupply.com/3d/http_-2www.sccsi.com/welcome.html +http://www.luf.org/wiki/edit/GIG/GenericCodingTerm +http://208.178.109.85/msgshow.cfm/msgboard=822531545582878&msg=50215618980084&page=1&idDispSub=-1 +http://mercury.spaceports.com/~xenical/diet-food.html +http://de.news.yahoo.com/991202/3/echc.html +http://web.tiscalinet.it/ipsiang/uviafede/tertulli.html +http://www.brio.de/BRIO.catalog/39fdb8820423a4d82740d472aa780733/Customer/Register +http://rainforest.parentsplace.com/dialog/thread.pl/bradley2/16/2.html?dir=prevResponse +http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/folderFrame/100012/0/def/1208103 +http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/gebaeude/Gemeinsam/Inserieren/Gemeinsam/MarketingStrategie/Gemeinsam/erreichenPartner/Gemeinsam/versicherungen/unfall/Top-Darlehens-Konditionen/anforderungsformular.htm +http://www.planetit.com/techcenters/docs/internet_&_intranet/news/PIT20000630S0024/threads?comment_status=on +http://ftp.eq.uc.pt/software/unix/Linux/redhat/redhat-6.2/doc/HOWTOS/localization/Hellenic-HOWTO-html/Hellenic-HOWTO-8.html +http://help.sap.com/saphelp_45b/helpdata/de/20/7be8341545ab06e10000009b38f83b/applet.htm +http://www.imagestation.com/member/?name=RonnyClas6&c=1 +http://www.egroups.com/messages/cmass-syd-talk/1170 +http://bellsouth-cl.tucows.com/winnt/xwinservernt_size.html +http://ftp.surfnet.nl/os/FreeBSD/cdrom/development/FreeBSD-CVS/ports/mail/youbin/patches/home.html +http://chat.bigchurch.com/cgi-bin/w3com/pws/bc/PDhIf1s64yA1us4SS1FzmCsroIgpwrmcmdaKEhvT295b5JjMxs9ttaP_gpBzDbn5VR9hkgTaiz3efTGjRK64ORbhJMs0Q8ONiYshBhnFHdkQjl3uSSwZim5B5Layd_SDwYDTVgHM659c +http://www.starshop.co.uk/Masson-Andre/Masson-Andre-Soleil-3200802.html +http://www.21hk.com/book/wx1/wx/zpj/h/huanzhulouzhu/shushan/4/ +http://www.dietrich-computer.de/creativegrafik.htm +http://forum.kf.kommorg.no/forum/agenda21/dispatch.cgi/disk_1/showFolder/100005/9206559 +http://mindit.netmind.com/proxy/http://abc.net.au/rn/schedule/wed.htm +http://www.fogdog.com/cedroID/ssd3040183156802/nav/stores/adventure_travel/ +http://www.fogdog.com/cedroID/ssd3040183156802/nav/stores/tennis/ +http://link.fastpartner.com/do/session/600349/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/nordicliving.php +http://members2.clubphoto.com/luisf216501/TAMARINDO/icons.phtml +http://www.affiliate.hpstore.hp.co.uk/do/session/380795/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/brocdesign.asp +http://www.hblb.org.uk/hblbweb.nsf/$Pages/NewsArchive1!OpenDocument&ExpandSection=3,7,14,5,13,4,12 +http://www.chaos.dk/sexriddle/d/l/t/i/a/ +http://www.crutchfield.com/S-s7BJxKzNmKr/shop/ +http://www.crutchfield.com/cgi-bin/S-s7BJxKzNmKr/email.asp?sid=S-s7BJxKzNmKr +http://tucows.interbaun.com/winme/adnload/137104_47064.html +http://iland.tucows.com/win2k/adnload/73990_29810.html +http://ftp.uk.debian.org/debian/dists/woody/contrib/binary-alpha/text/?M=A +http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|10P02|972959526|Warm===and===Dry|user|0|1,0,0,1 +http://pub14.ezboard.com/fjavagateforum69255multibasicboard +http://www.xrefer.com/entry/317621 +http://library.cuhk.edu.hk/search*chi/aChen,+Jih-peng./achen+jih+peng/-5,-1,0,B/frameset&F=achen+jie+qi&1,1 +http://library.cuhk.edu.hk/search*chi/aChen,+Jih-peng./achen+jih+peng/-5,-1,0,B/exact&F=achen+jih+hsin&1,2 +http://yp.gates96.com/5/50/60/53.html +http://yp.gates96.com/5/50/60/98.html +http://yp.gates96.com/5/50/61/14.html +http://yp.gates96.com/5/50/61/60.html +http://yp.gates96.com/5/50/62/0.html +http://yp.gates96.com/5/50/63/12.html +http://yp.gates96.com/5/50/63/14.html +http://yp.gates96.com/5/50/63/51.html +http://yp.gates96.com/5/50/63/52.html +http://yp.gates96.com/5/50/64/2.html +http://yp.gates96.com/5/50/64/31.html +http://yp.gates96.com/5/50/65/36.html +http://yp.gates96.com/5/50/65/44.html +http://yp.gates96.com/5/50/65/58.html +http://yp.gates96.com/5/50/65/78.html +http://yp.gates96.com/5/50/66/33.html +http://yp.gates96.com/5/50/66/38.html +http://yp.gates96.com/5/50/67/3.html +http://yp.gates96.com/5/50/67/83.html +http://yp.gates96.com/5/50/68/40.html +http://yp.gates96.com/5/50/69/2.html +http://yp.gates96.com/5/50/69/36.html +http://yp.gates96.com/5/50/69/49.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=cochichastes&l=pt +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=cochicharam&l=pt +http://www.affiliate.hpstore.hp.co.uk/do/session/380791/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp.com/cposupport/fr/?CTRYcod=FR +http://www.affiliate.hpstore.hp.co.uk/do/session/380791/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp +http://pub22.ezboard.com/fworldofmugenfrm2.showMessage?topicID=131.topic&index=1 +http://pub23.ezboard.com/fmugenshowdownfrm8.showMessage?topicID=36.topic&index=1 +http://www.questlink.com/QL/CDA/Research/ProductBrief/1,1768,0_11203_135680_85724,00.html +http://www.jamba.de/KNet/_KNet-KBq8j1-gEd-138pd/showInfo-special1.de/node.0/cde7f1uou +http://www.leg.wa.gov/pub/rcw%20-%20text/title_41/chapter_050/rcw_41_50_650.txt +http://www.tiscover.ch/1Root/Kontinent/6/Staat/30/Bundesland/31/Ort/234/Ferienpaket/20120/Homepage/buchen...1.html +http://family.go.com/Categories/Features/family_2000_02/kidv/kidv0200resourceiii/ +http://www.online.kokusai.co.jp/Service/V0043469/wrd/G200/service/service.html +http://www.linux.com/networking/network/help/hardware/website/ISP/ +http://store1.europe.yahoo.com/I/freemans_1592_58696403 +http://202.99.23.195/BIG5/channel5/745/20000427/51173.html +http://www-usa10.cricket.org/link_to_database/GROUNDS/WI/ALBION/ALBION_SPORTS_COMPLEX_00772/ +http://www16.freeweb.ne.jp/computer/taka34/ +http://books.hyperlink.co.uk/bookinfo/Caught_in_a_Tornado/Ross/James_R./155553192X +http://ftp.uni-stuttgart.de/pub/security/unix/SSLapps/doc/?S=A +http://www.moviestarpages.com/rebecca_romijn-stamos/picture05.htm +http://html.tucows.ciaoweb.it/adnload/001-009-008-022.html +http://html.tucows.ciaoweb.it/adnload/001-009-008-019.html +http://www.brio.de/BRIO.catalog/39fe2f4306cb75f4273fd472aa780708/UserTemplate/2 +http://www.hole.kommune.no/hole/journweb.nsf/weboffjournal!OpenView&Start=92&Count=50&Expand=170 +http://polygraph.ircache.net:8181/docs/Win95/MSdialer/http_-2www.fastcounter.com/http_-2home.netscape.com/home/http_-2www.bildhome.com/plantationhomes/bale1500.htm +http://polygraph.ircache.net:8181/docs/Win95/MSdialer/http_-2www.fastcounter.com/http_-2home.netscape.com/home/http_-2www.bildhome.com/plantationhomes/bale8000.htm +http://writer.heha.net/poetics/90_poetics.htm +http://yp.gates96.com/5/55/20/98.html +http://yp.gates96.com/5/55/21/17.html +http://yp.gates96.com/5/55/21/75.html +http://yp.gates96.com/5/55/22/2.html +http://yp.gates96.com/5/55/22/22.html +http://yp.gates96.com/5/55/22/92.html +http://yp.gates96.com/5/55/23/11.html +http://yp.gates96.com/5/55/23/46.html +http://yp.gates96.com/5/55/23/66.html +http://yp.gates96.com/5/55/23/90.html +http://yp.gates96.com/5/55/24/2.html +http://yp.gates96.com/5/55/24/83.html +http://yp.gates96.com/5/55/24/85.html +http://yp.gates96.com/5/55/25/62.html +http://yp.gates96.com/5/55/26/38.html +http://yp.gates96.com/5/55/26/48.html +http://yp.gates96.com/5/55/28/5.html +http://yp.gates96.com/5/55/28/77.html +http://yp.gates96.com/5/55/29/14.html +http://yp.gates96.com/6/50/40/47.html +http://yp.gates96.com/6/50/40/60.html +http://yp.gates96.com/6/50/40/62.html +http://yp.gates96.com/6/50/41/81.html +http://yp.gates96.com/6/50/41/83.html +http://yp.gates96.com/6/50/42/58.html +http://yp.gates96.com/6/50/42/90.html +http://yp.gates96.com/6/50/42/93.html +http://yp.gates96.com/6/50/43/29.html +http://yp.gates96.com/6/50/43/79.html +http://yp.gates96.com/6/50/43/85.html +http://yp.gates96.com/6/50/44/40.html +http://yp.gates96.com/6/50/44/76.html +http://yp.gates96.com/6/50/44/81.html +http://yp.gates96.com/6/50/45/15.html +http://yp.gates96.com/6/50/45/52.html +http://yp.gates96.com/6/50/46/15.html +http://yp.gates96.com/6/50/46/19.html +http://yp.gates96.com/6/50/46/92.html +http://yp.gates96.com/6/50/47/2.html +http://yp.gates96.com/6/50/47/7.html +http://yp.gates96.com/6/50/47/33.html +http://yp.gates96.com/6/50/49/29.html +http://yp.gates96.com/6/50/49/36.html +http://www.outpersonals.com/cgi-bin/w3com/pws/out/wRtIx3JBCL5wVzA1pIKradbm9z4Oo2BbPRx_FVh-j4UyLzjojbipsV0nsuM2iF9RxJ1jG2C4LUy3YP5pJl7qDqPdnqV765l2x5hJ0fIUUJuWLaccxO0svbclJ4-alyBQj6Y5dO8YdURyhf9q05q8mJ25FlvF62sm +http://213.36.119.69/do/session/152980/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www3.travelprice.com/voyages/recherche.phtml +http://yp.gates96.com/6/2/20/11.html +http://yp.gates96.com/6/2/21/12.html +http://yp.gates96.com/6/2/21/51.html +http://yp.gates96.com/6/2/21/56.html +http://yp.gates96.com/6/2/22/8.html +http://yp.gates96.com/6/2/22/38.html +http://yp.gates96.com/6/2/22/65.html +http://yp.gates96.com/6/2/23/14.html +http://yp.gates96.com/6/2/23/50.html +http://yp.gates96.com/6/2/23/57.html +http://yp.gates96.com/6/2/23/75.html +http://yp.gates96.com/6/2/24/15.html +http://yp.gates96.com/6/2/24/31.html +http://yp.gates96.com/6/2/24/43.html +http://yp.gates96.com/6/2/24/70.html +http://yp.gates96.com/6/2/24/87.html +http://yp.gates96.com/6/2/25/22.html +http://yp.gates96.com/6/2/25/53.html +http://yp.gates96.com/6/2/25/90.html +http://yp.gates96.com/6/2/26/25.html +http://yp.gates96.com/6/2/26/26.html +http://yp.gates96.com/6/2/26/45.html +http://yp.gates96.com/6/2/26/76.html +http://yp.gates96.com/6/2/27/34.html +http://yp.gates96.com/6/2/28/1.html +http://yp.gates96.com/6/2/28/25.html +http://yp.gates96.com/6/2/29/2.html +http://yp.gates96.com/6/2/29/31.html +http://yp.gates96.com/6/2/29/57.html +http://yp.gates96.com/6/2/29/74.html +http://archive.bitcon.no/tucows//winme/preview/136862.html +http://archive.bitcon.no/tucows//winme/preview/138371.html +http://archive.bitcon.no/tucows//winme/preview/137011.html +http://archive.bitcon.no/tucows//winme/preview/137897.html +http://archive.bitcon.no/tucows//winme/preview/138157.html +http://www.ngmag.com/books/reference/0792275667.html +http://socrates.berkeley.edu:4231/pth.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/music/midi/lit/quizz/lit/multiple.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/music/midi/lit/quizz/lit/god.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/music/midi/lit/quizz/misc/colorart/ +http://retailer.gocollect.com/do/session/1912687/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/postcards/index.asp +http://www.affiliate.hpstore.hp.co.uk/do/session/380807/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/creative/entry.asp +http://home.swipnet.se/~w-29806/Tab/Guitar/Svenska/h/Jakob%20Hellman/VACKERT_.TXT +http://jupiter.u-3mrs.fr/~msc41www/releves/16860204.HTM +http://citeseer.nj.nec.com/cidcontext/1003669 +http://citeseer.nj.nec.com/cidcontext/1003675 +http://citeseer.nj.nec.com/cidcontext/1003676 +http://www.escribe.com/religion/nondualitysalon/m10801.html +http://www.escribe.com/religion/nondualitysalon/m10824.html +http://www.tvstore.com/browse/TV/PATCH/s.bCooTxTe +http://digilander.iol.it/lorciao/computer.htm +http://yosemite.epa.gov/r9/sfund/overview.nsf/ef81e03b0f6bcdb28825650f005dc4c1/1d8f2e36da9dc1de8825660b007ee696?OpenDocument&ExpandSection=-1,-8,-4 +http://cn.egroups.com/post/ukr_liga?act=reply&messageNum=40 +http://www.lithoquoter.com/Scripts/WebObjects.exe/Printers.woa/048720000079262000002260000000798302/Session_Expired_Page.wo/6144200000698302/0/-/prime +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=coadjuvaram&l=pt +http://www.craft-supplies.co.uk/cgi-bin/psProdDet.cgi/LW132|972959517|Liming_&_Patinating|user|0|0,0,1,1 +http://www.angelfire.com/va/boogiescamp +http://www.kyotei.or.jp/JLC/VS/19/991209/0212.htm +http://www.affiliate.hpstore.hp.co.uk/do/session/380800/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/assistance/entry.asp +http://www.city-map.nl/city/map/en/Niedersachsen/Landkreis_Cuxhaven/customers/Dr.rer.nat._Büro_für_Erdwiss.Untersuchungen_Udo_Lade/contact.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=consternais&l=pt +http://muenchen.bda.de/freizeitparks/gastbuch/gaestebuch003.html +http://www.linux.com/networking/network/industry/growth/editing/SAP/ +http://www.linux.com/networking/network/industry/growth/editing/mobile/ +http://lists.omnipotent.net/qmail/199909/msg00892.html +http://lists.omnipotent.net/qmail/199909/msg00952.html +http://lists.omnipotent.net/qmail/199909/msg00964.html +http://ftp.cc.chuo-u.ac.jp/home/pub/lang/perl/CPAN/ports/msdos/old/?N=D +http://www3.buch-per-sms.de/faq.jsp$ID=To7697mC5277111659640048At0.5320036065114109 +http://www3.buch-per-sms.de/wir_ueber_uns.jsp$ID=To7697mC5277111659640048At0.5337056452821441 +http://tradersdirectory.com/channel/jobs/insurance/insurance_policy_clerk/b.2166.g.2360.html +http://www.mapion.co.jp/custom/nikkei/admi/13/13119/takashimadaira/7chome/27/ +http://www.dispatch.co.za/1998/02/19/easterncape/MARCHANC.HTM +http://www.techsupplies.com/sleuth/33/1/10703/523434/ +http://fi.egroups.com/message/911dispatchers/171 +http://polygraph.ircache.net:8181/services/define/toast/congress2000/http_-2www.sportfish.net/fish.htm +http://polygraph.ircache.net:8181/services/define/toast/congress2000/MS.htm +http://polygraph.ircache.net:8181/services/define/toast/congress2000/http_-2leader.linkexchange.com/1/X171400/clicklogo +http://polygraph.ircache.net:8181/services/define/toast/congress2000/cfiref.htm +http://www.digitaldrucke.de/(aktuell,arbeitsvermittlung,computer,daham,hilfe,individualverkehr,kultur,literatur,veranstaltungen,verkehr)/_fort/html/themen/aktuell/events/events.htm#regional +http://dellnet.excite.de/computer/katalog/7054 +http://read.cnread.net/cnread1/ztxs/b/baitian/lmss/006.htm +http://www-d0.fnal.gov/d0dist/dist/releases/psim01.02.00/l2utils/GNUmakefile +http://www.allgemeine-immobilien-boerse.de/Frankreich/Verkauf/Private-IB/Startseite/Gemeinsam/erreichenPartner/Gemeinsam/Inserieren/Allgemeine-IB/ +http://wish.themes.tucows.com/adnload/14495.html +http://wish.themes.tucows.com/preview/14494.html +http://wish.themes.tucows.com/preview/78220.html +http://www.uwm.edu/IMT/Computing/sasdoc8/sashtml/af/z0230835.htm +http://www.bdnet.com/Taiga/H/Fulu/fiche_serie.htm +http://se.egroups.com/message/clippingts/14?source=1 +http://adelaida.net/music/texts/trex_s1.html +http://archive.bitcon.no/pub/cica/handheld/desktop/ +http://www.jacksonhewitt.com/ctg/cgi-bin/JacksonHewitt/disclaimers/AAAksrACwAAACCMAAC +http://ftp.cc.chuo-u.ac.jp/home/pub/TeX/CTAN/language/ethiopia/ethtex/lj_fonts/?N=D +http://sirac.inrialpes.fr/Infos/Personnes/Christophe.Rippert/ressources/jdk1.3/docs/guide/jdbc/spec/jdbc-spec.frame16.html +http://www.linux.com/networking/network/release/press_release/competition/web/ +http://www.linux.com/networking/network/release/press_release/competition/internet/ +http://www.linux.com/networking/network/release/press_release/competition/HTTP/ +http://hughes.tucows.com/win2k/share2k_size.html +http://icq.planetout.com/popcornq/movienews/98/10/23/money/careers +http://go3.163.com/_NTES/~cntop07/files/k20808/zengby-k201/zengby-k201-09.html +http://uunetnl.pda.tucows.com/palm/pqa_news_license.html +http://uunetnl.pda.tucows.com/palm/preview/54359.html +http://uunetnl.pda.tucows.com/palm/preview/58637.html +http://uunetnl.pda.tucows.com/palm/adnload/72726_21807.html +http://uunetnl.pda.tucows.com/palm/adnload/62079_21796.html +http://uunetnl.pda.tucows.com/palm/preview/33674.html +http://uunetnl.pda.tucows.com/palm/preview/33501.html +http://uunetnl.pda.tucows.com/palm/adnload/52518_21780.html +http://ftp.dei.uc.pt/pub/net/ip/trace/traffic/?N=D +http://dreamgallery.simplenet.com/lobby/yrestless/sets/26/yrz19.htm +http://sanqin.net/wenyuan/gudian/fengshen/a/fengshen24.html +http://windows.tucows.com/preview/001-010-005-007C.html +http://windows.tucows.com/preview/001-010-005-004C.html +http://proshikanet.tucows.com/win2k/preview/37883.html +http://www5.cplaza.ne.jp/auth/kingdom/bbs/rescue/no70/182.html +http://www5.cplaza.ne.jp/auth/kingdom/bbs/rescue/no70/84.html +http://www5.cplaza.ne.jp/auth/kingdom/bbs/rescue/no70/82.html +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=7,19,34,20,29 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=36,19,34,20,29 +http://www.ne.jp/asahi/kume-kume/kume/photogellery/zoo/nihon_saru/html/nihon_saru04.html +http://www.ne.jp/asahi/kume-kume/kume/photogellery/zoo/nihon_saru/html/nihon_saru05.html +http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/showNextUnseen/fol/100001/2443194 +http://www.chaos.dk/sexriddle/t/r/p/c/p/ +http://www.ld.com/cbd/archive/1999/09(September)/13-Sep-1999/16sol007.htm +http://www.ld.com/cbd/archive/1999/09(September)/13-Sep-1999/16sol024.htm +http://www.ld.com/cbd/archive/1999/09(September)/13-Sep-1999/16sol025.htm +http://www.ld.com/cbd/archive/1999/09(September)/13-Sep-1999/16sol030.htm +http://debian.linux.org.tw/debian/dists/Debian2.1r4/non-free/binary-alpha/oldlibs/?N=D +http://www.tamil.net/list/2000-04/nav00304.html +http://www.2pl.com/b/se/to/1/01/05/v2/1010500263-7.htm +http://www.2pl.com/b/se/to/1/01/05/v2/1010500263-8.htm +http://www.mirror.ac.uk/sites/ftp.microsoft.com/deskapps/powerpt/KB/Q129/5/ +http://www.gbnf.com/genealogy/royal92/html/d0028/I307.HTM +http://www-linux.gsi.de/linux-doc/libqt2/examples/qfd/?M=A +http://www.arm.com/sitearchitek/support.ns4/html/sdt_debug!OpenDocument&ExpandSection=24,6,37,7 +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdeutils/kab/kab_kab1importer.h?sortby=log&only_with_tag=KDE_2_0_RELEASE +http://www.allgemeine-immobilien-boerse.de/nordrhein-Westfalen/bielefeld/Verkauf/Allgemeine-IB/Gemeinsam/versicherungen/gebaeude/Private-IB/Gemeinsam/erreichenPartner/email3d.htm +http://www.allgemeine-immobilien-boerse.de/nordrhein-Westfalen/bielefeld/Verkauf/Allgemeine-IB/Gemeinsam/versicherungen/gebaeude/Private-IB/3d-service/info.htm +http://satlink.tucows.com/winme/htmleditme_rating.html +http://satlink.tucows.com/winme/adnload/137630_29066.html +http://satlink.tucows.com/winme/adnload/137653_29087.html +http://yp.gates96.com/5/55/40/63.html +http://yp.gates96.com/5/55/40/93.html +http://yp.gates96.com/5/55/41/8.html +http://yp.gates96.com/5/55/41/27.html +http://yp.gates96.com/5/55/41/93.html +http://yp.gates96.com/5/55/42/1.html +http://yp.gates96.com/5/55/42/65.html +http://yp.gates96.com/5/55/43/15.html +http://yp.gates96.com/5/55/43/26.html +http://yp.gates96.com/5/55/43/94.html +http://yp.gates96.com/5/55/44/70.html +http://yp.gates96.com/5/55/44/83.html +http://yp.gates96.com/5/55/45/17.html +http://yp.gates96.com/5/55/46/3.html +http://yp.gates96.com/5/55/46/39.html +http://yp.gates96.com/5/55/46/43.html +http://yp.gates96.com/5/55/47/18.html +http://yp.gates96.com/5/55/48/23.html +http://yp.gates96.com/5/55/48/40.html +http://yp.gates96.com/5/55/48/72.html +http://yp.gates96.com/5/55/48/93.html +http://yp.gates96.com/5/55/49/7.html +http://yp.gates96.com/5/55/49/8.html +http://yp.gates96.com/5/55/49/20.html +http://yp.gates96.com/5/55/49/37.html +http://yp.gates96.com/5/55/49/49.html +http://yp.gates96.com/5/55/49/60.html +http://yp.gates96.com/5/55/49/69.html +http://www.ramtron.com/pages/visiters.htm +http://genforum.genealogy.com/cgi-genforum/forums/oh/wayne.cgi?56 +http://freebsd.ntu.edu.tw/perl/modules/by-module/DB_File/STAS/?N=D +http://sunsite.org.uk/public/usenet/news-faqs/alt.answers/us-visa-faq/?D=A +http://circumstance.co.kr/www.globalvillage.com/support/software.html +http://mediate.magicbutton.net/do/session/625589/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-top50.html +http://itcareers.careercast.com/texis/it/itjs/+9wwBmev6D86wwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGPndhBiwGna5O5BnManDtoDnnGamnVncdpoDtaBn5Baw1BdMwBodDaGn31oGnma5Aocc5anLpnGonDqnaGnwcaMFqhTfR20DzmeTtwwwpBm3eP0-dmwww5rmehDwwwBrmeZpwww/morelike.html +http://library.bangor.ac.uk/search/dProtestant+churches+--+New+York+(State)+--+History+--+19th+century/dprotestant+churches+new+york+state+history+++19th+century/-17,-1,0,B/frameset&F=dprotestant+churches+england+history+++16th+century&2,,3 +http://augustachronicle.com/stories/021299/fea_223-4914.000.shtml +http://dreamcity.gaiax.com/www/dreamcity/k/n/kint/menu.html +http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceMallCategories-BBC709D6_97E3_3D628A3FC67830F4FB7BD0E0AC833504 +http://www.mirror.kiev.ua:8082/paper/2000/07/1251/text/07-09-1.htm +http://www.burstnet.com/ads/ad7826a-map.cgi/1025131450 +http://link.fastpartner.com/do/session/600341/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/se/ +http://topcu.tucows.com/winme/adnload/137966_29370.html +http://topcu.tucows.com/winme/adnload/137990_29378.html +http://itcareers.careercast.com/texis/it/itjs/+9wwBmeS+D86swwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew6hwAwMwoaBnqrDoqwcaqdD51cBoDta5wcn5aqdD51cBwDB5aBnqrDdcdton5apGd5pnqBoVnaq15BdMnG5apGdm1qBaBnwMaMFqtwAwMwoDzmehxwwwpBmeV+D86eqxwww5rmedDwwwBrmeZpwww/jobpage.html +http://itcareers.careercast.com/texis/it/itjs/+DwwBmeoWD86eDqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew6hwAwMwoaBnqrDoqwcaqdD51cBoDta5wcn5aqdD51cBwDB5aBnqrDdcdton5apGd5pnqBoVnaq15BdMnG5apGdm1qBaBnwMaMFqtwAwMwoDzmehxwwwpBmeV+D86eqxwww5rmeqDwwwBrmeZpwww/morelike.html +http://itcareers.careercast.com/texis/it/itjs/+QwwBme4+D86qxwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew6hwAwMwoaBnqrDoqwcaqdD51cBoDta5wcn5aqdD51cBwDB5aBnqrDdcdton5apGd5pnqBoVnaq15BdMnG5apGdm1qBaBnwMaMFqtwAwMwoDzmehxwwwpBmeV+D86eqxwww5rm+mwwBrmeZpwww/jobpage.html +http://wwwbackup.trinler.net/anleitungen/manual/mod/mod_dll.html +http://wwwbackup.trinler.net/anleitungen/manual/mod/mod_log_agent.html +http://as400bks.rochester.ibm.com/pubs/html/as400/v4r5/ic2962/info/RZAIENETDOTDATA.HTM +http://www.gov.ie/educ/000928.htm +http://www.gov.ie/educ/speech/000928.htm +http://pub3.ezboard.com/utaela.showPublicProfile?language=EN +http://genforum.genealogy.com/cody/messages/700.html +http://genforum.genealogy.com/cody/messages/525.html +http://genforum.genealogy.com/cody/messages/494.html +http://genforum.genealogy.com/cody/messages/447.html +http://ftp.surfnet.nl/os/FreeBSD/cdrom/development/FreeBSD-CVS/ports/editors/psgml-emacs/files/home.html +http://www.mic.hr/PGBURZA:135556 +http://pub8.ezboard.com/fthecompanionswebboardfrm19 +http://pub8.ezboard.com/fthecompanionswebboardarchive +http://gallery2.simplenet.com/lobby/main/videocaps/ghoffman/precious/ghsp36.htm +http://www.symantec.ru/avcenter/venc/data/unashamed.html +http://www.symantec.ru/avcenter/cgi-bin/virauto.cgi?vid=7000 +http://www.symantec.ru/avcenter/cgi-bin/virauto.cgi?vid=1685 +http://www.symantec.ru/avcenter/cgi-bin/virauto.cgi?vid=5358 +http://rex.skyline.net/navigate.cgi?reading,retail,hobbies,painting,arts +http://rex.skyline.net/navigate.cgi?forsale,retail,hobbies,painting,arts +http://pds.nchu.edu.tw/cpatch/ftp/cuteftp/?S=A +http://www.tel.de/s/M/MCFIT.htm +http://zeus.uni-trier.de/~ley/db/indices/a-tree/s/Stevenson:Allan.html +http://www.alsapresse.com/jdj/00/07/14/SA/article_16.html +http://link.fastpartner.com/do/session/600359/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/jobpilot.php +http://link.fastpartner.com/do/session/600359/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/index.php +http://news.dreamwiz.com/news_lg/04/20001025/joins/200010251653041653193.html +http://news.dreamwiz.com/news_lg/04/20001025/joins/200010250820040820583.html +http://windows.tucows.com/winnt/adnload/71593_30161.html +http://213.36.119.69/do/session/152979/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/encheres/ +http://213.36.119.69/do/session/152979/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/IT_IT/ +http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/showNextUnseen/fol/100012/1220541 +http://bigpanda.net/46/alphabetical.html +http://bigpanda.net/46/io.html +http://fi.egroups.com/message/puzzles/547 +http://theaceshow.com/drawinglinda.html +http://theaceshow.com/drawingsketch.html +http://ftp.jp.debian.org/debian/dists/woody/main/binary-all/news/?D=A +http://www.trax.nilex.co.uk/trax.cgi/A1S/A2L/1AS/B3U/B4L/C2S/ +http://www.trax.nilex.co.uk/trax.cgi/A1S/A2L/1AS/B3U/B4L/C4D/ +http://in.egroups.com/message/islaam/3 +http://in.egroups.com/message/islaam/29 +http://ustlib.ust.hk/search*chi/a%7B233e68%7D%7B215976%7D%7B213e2e%7D/a%7B233e68%7D%7B215976%7D%7B213e2e%7D/-5,-1,0,B/browse +http://yp.gates96.com/13/8/20/68.html +http://yp.gates96.com/13/8/21/25.html +http://yp.gates96.com/13/8/21/32.html +http://yp.gates96.com/13/8/21/49.html +http://yp.gates96.com/13/8/21/63.html +http://yp.gates96.com/13/8/21/88.html +http://yp.gates96.com/13/8/22/2.html +http://yp.gates96.com/13/8/22/10.html +http://yp.gates96.com/13/8/22/67.html +http://yp.gates96.com/13/8/22/79.html +http://yp.gates96.com/13/8/23/19.html +http://yp.gates96.com/13/8/23/31.html +http://yp.gates96.com/13/8/25/64.html +http://yp.gates96.com/13/8/25/68.html +http://yp.gates96.com/13/8/25/73.html +http://yp.gates96.com/13/8/26/6.html +http://yp.gates96.com/13/8/26/11.html +http://yp.gates96.com/13/8/26/12.html +http://yp.gates96.com/13/8/26/39.html +http://yp.gates96.com/13/8/26/54.html +http://yp.gates96.com/13/8/26/55.html +http://yp.gates96.com/13/8/26/82.html +http://yp.gates96.com/13/8/27/89.html +http://yp.gates96.com/13/8/28/22.html +http://yp.gates96.com/13/8/28/61.html +http://yp.gates96.com/13/8/29/13.html +http://yp.gates96.com/13/8/29/33.html +http://yp.gates96.com/13/8/29/83.html +http://www.private-immobilien-boerse.de/baden-wuertemberg/ostalb-kreis/Verkauf/Versteigerungen-IB/Startseite/Gemeinsam/erreichenPartner/IIM-Teil/Startseite/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/indexbeginn.htm +http://www2.so-net.ne.jp/mc/columns/nakama/1112/ +http://ring.shibaura-it.ac.jp/archives/pack/x68/personal/tokei/00_index.txt +http://yp.gates96.com/5/32/0/0.html +http://yp.gates96.com/5/32/0/99.html +http://yp.gates96.com/5/32/1/92.html +http://yp.gates96.com/5/32/1/93.html +http://yp.gates96.com/5/32/3/68.html +http://yp.gates96.com/5/32/4/21.html +http://yp.gates96.com/5/32/4/72.html +http://yp.gates96.com/5/32/5/87.html +http://yp.gates96.com/5/32/6/64.html +http://yp.gates96.com/5/32/7/25.html +http://yp.gates96.com/5/32/7/32.html +http://yp.gates96.com/5/32/7/44.html +http://yp.gates96.com/5/32/7/68.html +http://yp.gates96.com/5/32/7/78.html +http://yp.gates96.com/5/32/8/40.html +http://yp.gates96.com/5/32/8/59.html +http://yp.gates96.com/5/32/8/90.html +http://yp.gates96.com/5/32/8/95.html +http://yp.gates96.com/5/32/9/3.html +http://yp.gates96.com/5/32/9/54.html +http://yp.gates96.com/5/32/9/62.html +http://yp.gates96.com/5/32/9/77.html +http://tucows.soneraplaza.nl/winme/preview/138260.html +http://www.cnnews.com/maya/finance/cjsy/gncj/item/2000_07/206341.shtml +http://212.31.0.37/hur/turk/98/09/23/dunya/02dun.htm +http://212.31.0.37/hur/turk/98/09/12/dunya/01dun.htm +http://ftp.cwi.nl/ftp/mdr/LOCKED/ +http://ftp.cwi.nl/ftp/mdr/PICH/ +http://www.ncte.org/lists/ncte-talk/jan2000/msg02008.html +http://www.russ.ru/forums/prav-dir/conf2/695_r.htm +http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/1997-98/jmc1/labs/Ex05/mjp97/?D=A +http://www.affiliate.hpstore.hp.co.uk/do/session/380786/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/search.asp +http://www.flapjack.de/main/2ndHP/jangl43637.htm +http://195.166.55.201/vfg-uk/HTML/P145232.HTM +http://www.greenleaves.com/bookcat/gb_0689826788.html +http://webraft.its.unimelb.edu.au/730452/students/sgm/pub/ +http://ring.omp.ad.jp/pub/NetBSD/packages/pkgsrc/print/teTeX-share/files/ +http://ww.egroups.com/subscribe/wtcjk_purnawirawan +http://167.8.29.14/life/travel/ski/skinj.htm +http://www.nrk.no/finnmark/x26_5_97/fastesid/abonn.htm +http://www.brio.de/BRIO.catalog/39fe2f41050aa9b82741d472aa7806dd/UserTemplate/6 +http://207.25.71.143/golf/news/2000/04/18/heintz/ +http://weekends.worldres.com/script/gen_review.asp?hotel_id=4291&n=1231 +http://www.netitor.com/photos/schools/bc/sport/m-footbl/auto_pdf/weekly-release-082800.pdf +http://www.3w-sciencefiction.de/SmytheRH/SmytheRH0785808744.htm +http://www.zdnet.com/gamespot/stories/screens/0,10865,2617426-32,00.html +http://ftp.lip6.fr/pub2/sgml-tools/website/HOWTO/Root-RAID-HOWTO/t1450.html +http://webusers.siba.fi/doc/texmf/latex/ms/?M=A +http://www.trax.nilex.co.uk/trax.cgi/A1S/1AL/A3L/A1U/A3S/1AS/ +http://www.trax.nilex.co.uk/trax.cgi/A1S/1AL/A3L/A1U/A3S/D1U/ +http://www.trax.nilex.co.uk/trax.cgi/A1S/1AL/A3L/A1U/A3S/D3S/ +http://thaigate.rd.nacsis.ac.jp/ftp/thaisoft/nectec/linux.tle/6.01/Mandrake/?S=D +http://www-ind5.cricket.org/link_to_database/ARCHIVE/2000-01/AUS_LOCAL/GRADE/NSW/SCA/WOMEN/SCA-WOMEN_2000-01_FIXTURES.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=abbratend&l=de +http://www.webvillage.org/mBEDJPsite/html/downloadplugins.html +http://www.gov.karelia.ru:8081/gov/Karelia/658/8.html +http://www.private-immobilien-boerse.de/bayern/ingolstadt/Verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/Inserieren/Gemeinsam/erreichenPartner/Ferien-IB/Startseite/ +http://pillsonline.00go.com/lowfatdiet/lifetime_fitness.htm +http://tecfa2.unige.ch/guides/java/examples/JavaClassLibExamples/io/FileReader/Main.class +http://www.burstnet.com/ads/ad7826a-map.cgi/1933336291 +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/asiasanahaku/Hong%2520Kong/aasia/talous/pika-+ja+perustilastoja/ +http://home.tiscalinet.be/oaseidstad/vonk/optop2000.html +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=19,36,22,32,23 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=29,36,22,32,23 +http://cn.egroups.com/messages/virtualaccess/194 +http://jerken.grida.no/nor/soeno97/ozone/frames/pressure.htm +http://online.excite.de/erotik/katalog/6213 +http://online.excite.de/erotik/katalog/6187 +http://online.excite.de/erotik/katalog/6221 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=28,7,35,25,13 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=31,7,35,25,13 +http://genforum.genealogy.com/cgi-genforum/forums/loughlin.cgi?11 +http://freesoftware.missouri.edu/pub/CPAN/authors/id/J/JS/JSWARTZ/?D=A +http://link.fastpartner.com/do/session/600360/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/fastpartner.php +http://www.jobvillage.com/channel/jobs/sciences/life_sciences/soil_plant_scientist/b.1041.g.251.html +http://ftp.debian.org/dists/Debian2.2r0/non-free/binary-sparc/mail/?D=A +http://generalstore.everdream.com/kore/catalog/Office_Supplies/General_Office_Supplies/Tape_Flags/Arrow/GRP-US6663/product.html +http://www.hig.se/(date,if,set,tablify,user)/~jackson/roxen/ +http://www.hig.se/(date,if,language,set,tablify)/~jackson/roxen/ +http://www.cyber-pages.com/0prog/classifieds_display.cgi?oakland=WEMP=0 +http://202.84.17.6/csnews/articles/141_18691.htm +http://202.84.17.6/csnews/articles/142_18526.htm +http://ftp.dti.ad.jp/pub/FreeBSD/FreeBSD-current/www/es/releases/1.1.5/ +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=9&discrim=247,207,129 +http://ftp.up.pt/Linux/debian/dists/unstable/main/disks-i386/?M=A +http://www.unterhaltungs-cd.de/HillJonny/B000025087.htm +http://filebox.vt.edu/users/aneal/excess/_fpclass/ +http://www.jamba.de/KNet/_KNet-JOt8j1-OEd-139q0/showInfo-presse.de/node.0/cde7f1uou +http://www.tercera.cl/diario/1997/12/05/win.html +http://yp.gates96.com/14/88/20/8.html +http://yp.gates96.com/14/88/20/13.html +http://yp.gates96.com/14/88/22/30.html +http://yp.gates96.com/14/88/25/28.html +http://yp.gates96.com/14/88/25/65.html +http://yp.gates96.com/14/88/26/3.html +http://bsdweb.pasta.cs.uit.no/bsdweb.cgi/~checkout~/pkgsrc/math/grace/pkg/ +http://ftp.tokyonet.ad.jp/pub/Linux/debian-jp/dists/unstable-jp/contrib/binary-m68k/math/?S=A +http://my.dreamwiz.com/piramos/lan.htm +http://pub8.ezboard.com/fselfreliantlivingfrm16.showMessage?topicID=11.topic +http://pub8.ezboard.com/fselfreliantlivingfrm16.showMessage?topicID=4.topic +http://www.affiliate.hpstore.hp.co.uk/do/session/380798/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/vacationcards.asp +http://systemlogic.neoseeker.com/Companies/productportfolios/NEC_Interchannel/?sortby=sections +http://www.houses-apartment-rentals.com/Virginia/city_search_criteria.asp?state=VA&City=DALHART +http://www.wcbcourses.com/wcb2/schools/MERCED/merced/dhauser/2/forums/forum2/messages/17.html +http://www.wcbcourses.com/wcb2/schools/MERCED/merced/dhauser/2/forums/forum2/messages/10.html +http://beautifulsavers.subportal.com/sn/Shell_and_Desktop/Quick_Shutdown_Tools/2702.html +http://polygraph.ircache.net:8181/getting_started/http_-2www.lucent.com/micro/K56flex/http_-2home.netscape.com/comprod/mirror/http_-2www.wtcsf.org/mall/http_-2www.cdnow.com/http_-2www.microsoft.com/msoffice/publicaffairs.html +http://polygraph.ircache.net:8181/getting_started/http_-2www.lucent.com/micro/K56flex/http_-2home.netscape.com/comprod/mirror/http_-2www.wtcsf.org/mall/http_-2www.cdnow.com/http_-2www.microsoft.com/msoffice/videobroadcast/ +http://www.yagoo.co.kr/stats/pitching.asp?Mlbmanid=JESPEN7599 +http://www.4hotfantasy.com/acommon/guests/python4.html +http://boerseninfos.ksk-tut.de/dynamic/ak/adhoc/news/519000-20000316-150811.html +http://boerseninfos.ksk-tut.de/dynamic/ak/adhoc/news/519000-19991025-082814.html +http://cn.yahoo.com/Regional/Countries_and_Regions/China/Provinces__Regions_and_Municipalities/Zhejiang/Cities_and_Towns/Li_Hsua/Business/Companies/Books/ +http://www.affiliate.hpstore.hp.co.uk/do/session/380810/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp +http://kuyper.calvin.edu/fathers2/NPNF1-01/npnf1-01-12.htm +http://library.bangor.ac.uk/search/dModernism+(Literature)/dmodernism+literature/-5,-1,0,E/2browse +http://aleph.tau.ac.il:4500/ALEPH/ENG/ATA/AAS/AAS/SHORT/410519/1/ +http://pub1.ezboard.com/fflashboard1flashjunkiestalk.showAddReplyScreenFromWeb?topicID=190.topic&index=2 +http://www.inforiese.de/db_cargo/typ_b_files/db_cargo_cargo_ansprechpartner.shtml +http://www.gbnf.com/genealogy/dehart/html/d0005/I985.HTM +http://btclickfam.excite.co.uk/directory/categories/670199 +http://www.worldmedicus.com/servlet/Controller/$7008040516620000.sj_viewc/ +http://www.worldmedicus.com/servlet/Controller/$7008040528250000.sj/ +http://207.25.71.143/features/galleries/then_and_now/belinsky/belinsky01_lg_01.html +http://wiem.onet.pl/wiem/002c66.html +http://www.peopledaily.com.cn/GB/paper40/544/58242.html +http://www.uihealthcare.com////PatientsVisitors/MedMuseum/CenturyOfCaring/UniversityHospitals/05Quarantine.html +http://se.egroups.com/login.cgi?login_target=%2Fmessages%2Fwotccglist%2F333 +http://se.egroups.com/message/wotccglist/334 +http://se.egroups.com/message/wotccglist/350 +http://se.egroups.com/message/wotccglist/358 +http://www.msn.expedia.co.uk/wg/North_America/United_States/P30131.asp +http://www.uol.com.br/cinemaonline/starwars +http://www.perotech.ch/d/securedb/html/listtopic.php?7396 +http://moviestore.zap2it.com/browse/X-FILES/POSTCARD/s.goFzN1Lb +http://zeus.uni-trier.de/~ley/db/indices/a-tree/m/Morgoev:Vladimir_K=.html +http://www.3w-buecher.de/GilliesRobertJ/GilliesRobertJ0122839803.htm +http://www.buybuddy.com/sleuth/27/1/11002/6637/ +http://ftp.uk.debian.org/debian/dists/unstable/contrib/binary-powerpc/oldlibs/?D=A +http://no.egroups.com/login.cgi?login_target=%2Fgroup%2Fwww.members.xoom.com%2FLibertyFlame +http://www.aelita.net/products/support/sitemap/Reg/QuoteRegister/news/company/Copyright.htm +http://www.aelita.net/products/support/sitemap/Reg/QuoteRegister/news/services/default.htm +http://www.amateurplatinum.com/spankingfantasy/fertiletrophy-wife/hot-hardcore-fuckinglongest/red-toenail-polishfeet-fucking-/vietnamesewomen/chinesechi/womenpetite.html +http://www.amateurplatinum.com/spankingfantasy/fertiletrophy-wife/hot-hardcore-fuckinglongest/red-toenail-polishfeet-fucking-/vietnamesewomen/fuckinghard/actionsmacking.html +http://genforum.genealogy.com/cgi-bin/print.cgi?fikes::26.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/programs/unlambda/lit/quizz/music/midi/ +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/programs/unlambda/lit/quizz/computers/callcc.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/programs/unlambda/lit/quizz/misc/colorart/ +http://www.musiciansfriend.com/ex/ds/live/001030182726064208037002434823 +http://www.musiciansfriend.com/ex/ds/home/funzone/001030182726064208037002434823?doc=doc,postcard.html +http://www.musiciansfriend.com/ex/ds/home/platinum/001030182726064208037002434823?g,home.platinum.html +http://www.musiciansfriend.com/ex/ds/home/articles/001030182726064208037002434823?dbase=gw,gwmain.html +http://www.musiciansfriend.com/ex/ds/home/articles/001030182726064208037002434823?dbase=info,privacy.html +http://preview.egroups.com/dir/Business/Training_and_Schools/Management_Training/Consultants?st=4 +http://hammer.prohosting.com/~nieting/html1216/lmtf015.htm +http://planetfreebies.subportal.com/sn/Information_Management/Misc__Information_Databases/12835.html +http://dada.linuxberg.com/kdehtml/adnload/61589_33448.html +http://www.wlu.ca/~wwwregi/95-96/cal/ucourses/GM/GM151.html +http://walkabout.tucows.com/win2k/adnload/61015_28629.html +http://www.1001e.net/02/qbt/09.htm +http://se.egroups.com/post/webfaaa?act=reply&messageNum=3 +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/keats.admin.virginia.edu/asbestos/home.html +http://www.hotelboulevard.com/fr/riviera/standard/htmlf752567459c6d803842381c50e94fd9f/sessionLang/ANG/gettingstarted.html +http://ring.omp.ad.jp/pub/NetBSD/packages/pkgsrc/print/transfig/?N=D +http://citeseer.nj.nec.com/cidcontext/2339336 +http://www.uk.multimap.com/p/browse.cgi?pc=LS287DR +http://topcu.linux.tucows.com/x11html/adnload/46019_3809.html +http://www.mon.de/nr/stuemges +http://www.tamil.net/list/1998-10/msg00212.html +http://retailer.gocollect.com/do/session/1912682/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/terms_and_conditions.asp +http://pl.php.net/manual/nl/function.pfpro-version.php +http://members.tripod.co.jp/millenium/top.html +http://community.webshots.com/photo/4331085/4331572GooaFzYUAJ +http://community.webshots.com/photo/4331085/4331589oKrBmsJbga +http://community.webshots.com/photo/4331085/4331620zgfyMLoSjs +http://www.utdallas.edu/~chansen/text/qabbala9.html +http://www.jobvillage.com/channel/jobs/installation_repair/safety_equipment/fire_alarm/b.2283.g.3516.html +http://www.geocities.com/Area51/Chamber/8750/DoesKitEverTalkAboutTheSubjectOnHand.html +http://www.geocities.com/Area51/Chamber/8750/TheMotherofAllMissleBoats.html +http://www.geocities.com/Area51/Chamber/8750/Tomahawk2.html +http://www.thecitizennews.com/main/archive-000628/thecitizennews/citizen.html +http://links2go.publiweb.com/expert/topic/Mp3_Hardware +http://webhelp.promovacances.net/S02/BL/BEGYP/SAI00512024/cal.htm?d=1013 +http://205.161.150.96/cgi-bin/c2k/title_talent.html&id=143786&title_star=DOMINICK +http://dennou-q.geo.kyushu-u.ac.jp/library/Linux/debian-jp/dists/stable/non-free-jp/binary-all/net/?S=A +http://wow-online.vhm.de/Wirtschaft/Unternehmen/Versicherungen/Versicherungsgesellschaften/Signal_Versicherung.html +http://www.linux.com/networking/network/firewall/web/communications/?kw_offset=50 +http://www.leg.wa.gov/pub/rcw%20-%20text/title_28b/chapter_056/rcw_28b_56_090.txt +http://pub12.ezboard.com/flalaland96545listeningbooth.showMessage?topicID=74.topic +http://www.fogdog.com/cedroID/ssd3040183156032/crs/pw__/wld/fogdog_sports/lee_sport/fan_memorabilia/apparel/new_york_yanke_2000_ameri_leagu_champ_tee_shi.html +http://www.fogdog.com/cedroID/ssd3040183156032/nav/stores/adventure_travel/ +http://www.hoovers.com/travel/cityguide/detailed/0,3368,46_119158,00.html +http://user.chollian.net/~mlsc/ +http://www.158china.com/data/stock/fundowner/default.asp?stck_cd=0548 +http://www.affiliate.hpstore.hp.co.uk/do/session/380803/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/createbroch.asp +http://rcsl.auto.inha.ac.kr/~treeman/Documents/HOWTO/Consultants-HOWTO-3.html +http://www.diogenes.ch/4DACTION/web_rd_aut_prview/a_id=7056427&area=&ID=483330 +http://polygraph.ircache.net:8181/http_-2www.horizonfinance.com/http_-2www.netscape.com/download/http_-2www.microsoft.com/ie/http_-2207.91.150.20/links.html +http://www.multicosm.com/facade/www.adobe.com/support/techguides/printpublishing/scanning/psscanning01b.html +http://yp.gates96.com/0/50/10/62.html +http://yp.gates96.com/0/50/10/95.html +http://yp.gates96.com/0/50/11/1.html +http://yp.gates96.com/0/50/11/18.html +http://yp.gates96.com/0/50/11/49.html +http://yp.gates96.com/0/50/12/55.html +http://yp.gates96.com/0/50/13/48.html +http://yp.gates96.com/0/50/13/96.html +http://yp.gates96.com/0/50/14/15.html +http://yp.gates96.com/0/50/14/73.html +http://yp.gates96.com/0/50/15/50.html +http://yp.gates96.com/0/50/15/80.html +http://yp.gates96.com/0/50/16/1.html +http://yp.gates96.com/0/50/16/8.html +http://yp.gates96.com/0/50/17/50.html +http://yp.gates96.com/0/50/17/71.html +http://yp.gates96.com/0/50/18/25.html +http://yp.gates96.com/0/50/18/73.html +http://yp.gates96.com/0/50/18/82.html +http://yp.gates96.com/0/50/18/84.html +http://yp.gates96.com/0/50/18/90.html +http://cisne.sim.ucm.es/search*spi/dBallets+--+Gran+Bretaña+--+Discos+compactos/dballets+gran+bretan~aa+discos+compactos/-29,-1,0,B/browse +http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bp20005025/-17,-1,0,B/browse +http://www.trax.nilex.co.uk/trax.cgi/A1S/1AL/A3L/A4R/B1D/A3S/ +http://php.nic.fi/manual/html/function.cpdf-open.html +http://php.nic.fi/manual/html/function.cpdf-fill.html +http://php.nic.fi/manual/html/function.cpdf-setrgbcolor-fill.html +http://www.classiccmp.org/mail-archive/classiccmp/1998-04/1426.html +http://text.csn.ul.ie/~danny/tabs/p/proclaimers/?N=D +http://mirror.nucba.ac.jp/mirror/FreeBSD/branches/3.0-stable/ports/japanese/zangband/?N=D +http://augustachronicle.com/stories/100197/spo_fishing.html +http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=10,8,9,5 +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/linux/music/quizz/pics.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/linux/music/quizz/lit/ldvelh.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/linux/music/quizz/misc/unitest/ +http://mirror.nucba.ac.jp/mirror/FreeBSD/branches/3.0-stable/ports/japanese/ptex-pkfonts360/?N=D +http://www.2pl.com/b/ru/fi/1/24/06/b1/1240601249-11023.htm +http://galaxy.einet.net/galaxy/Community/United-States/States/Minnesota/Cities-and-Regions/Winona/Education/K--12/Middle/Public.html +http://www.hotelboulevard.com/fr/paris/standard/htmlc866e5cecf73322551f00b0108eb84bc/sessionLang/ANG/prov/browse/cp/75001/resultatSearch.html +http://btp1da.phy.uni-bayreuth.de/ftp/pub/FreeBSD/ports/japanese/dvipsk-vflib/pkg-descr +http://32548news.subportal.com/sn/Utilities/Misc__Encryption_Utilities/ +http://www.hongen.com/proedu/hext/zxks/dxyw/html/dxy62804.htm +http://www.users.globalnet.co.uk/~roy/InternetTree/WC01/WC01_226.htm +http://www2.msstate.edu/~eaddy/famtread/html/nti07339.htm +http://www.trackinfo.com/trakdocs/hound/ca/RESULTS/ARCHIVE/1996/0996/GRCA19S.HTM +http://www.idg.net/crd_essential_110984.html +http://www.zdnet.de//news/artikel/2000/09/06015-wc.html +http://www.secinfo.com/d114Cu.52.htm +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus141561/eus174865/eus327367/eus327527/eus331435/ +http://enjoy100.com.cn/200005/23/ +http://link.fastpartner.com/do/session/600348/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mediatransfer.php +http://www.chaos.dk/sexriddle/t/z/p/b/b/ +http://www.brio.de/BRIO.catalog/39fe2f4106ca8ce0273fd472aa7806ff/UserTemplate/6 +http://link.fastpartner.com/do/session/600352/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/robinhus.php +http://link.fastpartner.com/do/session/600352/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/create/index.php +http://www.underground-online.com/companyfinder/filters/products/0,9996,1793-101,00.html +http://mediate.magicbutton.net/do/session/625588/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/viewer.cfm +http://aol.digitalcity.com/houston/recreation/event.dci?eid=6452 +http://www.linux.com.hk/mirror/ldp/LDP/LG/issue10/lg_bytes10.html +http://www.linux.com.hk/mirror/ldp/LDP/LG/issue10/issue10.txt +http://www.beauty.net.cn/main/japanese/mie.htm +http://www.allgemeine-immobilien-boerse.de/kanada/verkauf/Gemeinsam/Inserieren/Allgemeine-IB/Ferien-IB/Startseite/Private-IB/Startseite/Default.htm +http://www.kodak.co.uk/US/en/corp/store/catalog/Product.jhtml?PRODID=2113&CATID=2234 +http://opac.lib.ntnu.edu.tw/search*chi/f373+017/f373+017/-5,-1,,B/browse +http://ftp.du.se/disk3/mandrake/7.1/Mandrake/mdkinst/etc/pcmcia/?M=A +http://www.teenplatinum.com/barelylegal/anal-sexass/taismall/almond-skinned/{gaylink} +http://194.128.65.4/pa/cm199697/cmhansrd/vo970318/debtext/70318-11.htm +http://netlondon.hotelbook.com/live/photos/19368 +http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/folderFrame/100205/0/author/1243894 +http://www.teacherformation.org/html/od/facilitators.cfm/task1,login/discussion_id,2/xid,5474/yid,3022999 +http://polygraph.ircache.net:8181/environment_energy/heritage/http_-2www.apache.org/ +http://plat.debian.or.jp/debian/dists/unstable/main/binary-alpha/math/?D=A +http://home.hiwaay.net/~bjacobs/genealogy/laster/html/d0054/g0000038.html +http://www.northampton.ac.uk/cgi-bin/liberation/betsie/betsie.pl/1005/www.northampton.ac.uk/cgi-bin/liberation/betsie/betsie.pl/1037/www.northampton.ac.uk/lrs/Information/refword.html +http://ustlib.ust.hk/search*chi/cPL1275+.F426+1991/cpl+1275+f426+1991/-5,1,1,E/frameset&F=cpl+1273+y36+1982&1,1, +http://stormix.com/en/resources/packages/tex/devel/debmake +http://stormix.com/en/resources/packages/tex/devel/doc++ +http://stormix.com/en/resources/packages/tex/devel/ftnchek +http://stormix.com/en/resources/packages/tex/devel/libnet0-dev +http://stormix.com/en/resources/packages/tex/devel/libobgtk-dev +http://stormix.com/en/resources/packages/tex/devel/netatalk-dev +http://stormix.com/en/resources/packages/tex/devel/pact-base +http://stormix.com/en/resources/packages/tex/devel/scalapack1-mpich +http://members.tripod.co.jp/sugisaka/?M=A +http://www.szinfo.com/book/wai/no/fa/h/hongyuhei/011.htm +http://www.szinfo.com/book/wai/no/fa/h/hongyuhei/054.htm +http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/listUnseen/fol/100205/20,0/1230074 +http://www.crutchfield.com/cgi-bin/S-p5rPnwuC0SA/Auto.asp +http://www.abb.co.uk/global/seapr/SEAPR035.NSF/viewUNID/f79b6db19a951ce0c125697300319a41!OpenDocument&ExpandSection=6,4,8,5 +http://freebsd.ntu.edu.tw/perl/authors/id/A/AO/AOCINAR/?S=A +http://www.gaymencam.com/elke.html +http://www.linux.com/networking/network/industry/new/web_server/website/ +http://www.tccomputers.com/cgi-bin/bp/1899758621/products/removeabledrives/removeabledrives.htm +http://www.tccomputers.com/cgi-bin/bp/1899758621/store/showcart.html +http://www.highwired.net/Guidance/Section/0,1860,1779-27626,00.html +http://gd.cnread.net/cnread1/net/zpj/r/repinsky/005.htm +http://www.amateurplatinum.com/tubal-ligationmilk/pregnanttubal-ligation/off-the-ragnipples/jizz-dribbling-cumshotscumming/{amateurlink} +http://home.dqt.com.cn/~why/wenzhang/ckpajq/.htm +http://ftp.fi.debian.org/debian/dists/woody/non-free/binary-all/doc/?D=A +http://www.linux.com/networking/network/website/hardware/howto/Linuxcare/ +http://www.linux.com/networking/network/website/hardware/howto/sales/ +http://shn.webmd.com/printing/asset/adam_imagepage_8626 +http://www.geocities.co.jp/Outdoors/2127/bangai_makuyama.html +http://www2.to/souhey +http://www.hotelboulevard.com/fr/paris/standard/html73b90b9d262d517e98c9d779b3b09b7a/sessionLang/ANG/prov/browse/cp/75017/resultatSearch.html +http://perso.wanadoo.fr/olivier.leieber/page22.html +http://www.computer-networking.de/studenten/dv_labor/onlinebuecher/apache/sections.html +http://saejong.pufs.ac.kr/~cilim/homepage/link.html +http://cafe3.daum.net/Cafe-bin/Bbs.cgi/hopepds/qry/zka/B2-kCYFp/qqatt/^ +http://www3.newstimes.com/archive99/jun1899/lch.htm +http://www.7thlevel.com/python/cwot/demo/ +http://www.paidmania.com/getpaid/signup/100/4632 +http://yp.gates96.com/12/14/0/31.html +http://yp.gates96.com/12/14/0/43.html +http://yp.gates96.com/12/14/0/60.html +http://yp.gates96.com/12/14/1/18.html +http://yp.gates96.com/12/14/1/44.html +http://yp.gates96.com/12/14/1/64.html +http://yp.gates96.com/12/14/1/82.html +http://yp.gates96.com/12/14/2/84.html +http://yp.gates96.com/12/14/3/61.html +http://yp.gates96.com/12/14/4/65.html +http://yp.gates96.com/12/14/5/24.html +http://yp.gates96.com/12/14/5/49.html +http://yp.gates96.com/12/14/5/60.html +http://yp.gates96.com/12/14/5/62.html +http://yp.gates96.com/12/14/6/20.html +http://yp.gates96.com/12/14/6/51.html +http://yp.gates96.com/12/14/7/28.html +http://yp.gates96.com/12/14/7/85.html +http://yp.gates96.com/12/14/7/93.html +http://planet.gaiax.com/home/kito/main +http://www.svt.se/falun/packat/program/603/images/1rep/?D=A +http://volunteersolutions.org/swt/volunteer/opp/one_151124_printer_detailed.html +http://fyi.cnn.com/ASIANOW/asiaweek/97/1003/nat1.html +http://www.farhi.org/ps09/ps09_233.htm +http://yp.gates96.com/6/8/30/27.html +http://biz.yahoo.com/apf/000929/tire_death_7.html +http://www.studentadvantage.gamers.com/game/135583 +http://www.studentadvantage.gamers.com/game/45759 +http://yp.gates96.com/6/8/30/44.html +http://yp.gates96.com/6/8/30/50.html +http://yp.gates96.com/6/8/30/72.html +http://yp.gates96.com/6/8/30/86.html +http://yp.gates96.com/6/8/30/89.html +http://yp.gates96.com/6/8/31/78.html +http://yp.gates96.com/6/8/31/88.html +http://yp.gates96.com/6/8/32/3.html +http://yp.gates96.com/6/8/32/24.html +http://yp.gates96.com/6/8/32/34.html +http://yp.gates96.com/6/8/33/14.html +http://yp.gates96.com/6/8/33/42.html +http://yp.gates96.com/6/8/33/75.html +http://yp.gates96.com/6/8/34/32.html +http://yp.gates96.com/6/8/34/97.html +http://yp.gates96.com/6/8/35/53.html +http://yp.gates96.com/6/8/35/98.html +http://yp.gates96.com/6/8/36/74.html +http://yp.gates96.com/6/8/36/99.html +http://yp.gates96.com/6/8/38/92.html +http://yp.gates96.com/6/8/38/97.html +http://yp.gates96.com/6/8/39/45.html +http://yp.gates96.com/6/8/39/69.html +http://tour.stanford.edu/tour/29.0/gMlPb +http://idl.tucows.com/winme/adnload/138396_30343.html +http://idl.tucows.com/winme/adnload/138395_29743.html +http://web.singnet.com.sg/~tay7012i/family.htm +http://www.chaos.dk/sexriddle/p/f/g/j/o/ +http://lcweb2.loc.gov/ll/llnt/070/?S=A +http://lcweb2.loc.gov/ll/llnt/070/0100/ +http://www.crosswinds.net/~lucifern/ +http://pub14.ezboard.com/fblazinofdablazinestdabattledome.subscribeUnregisteredToTopic?topicID=190.topic +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/computers/lit/quizz/programs/unlambda/misc/peanuts.html +http://members.se.tripod.de/svdata/inglis/sida2.htm +http://www.fogdog.com/cedroID/ssd3040183217284/crs/hp/nav/stores/golf/ +http://198.103.152.100/search*frc/tOperations+guide+to+ZIM/toperations+guide+to+zim/-17,-1,0,E/2browse +http://herndon1.sdrdc.com/cgi-bin/com_detail/C00186353 +http://www.j2ee.com/products/javamail/javadocs/javax/mail/Flags.html +http://www.j2ee.com/products/javamail/javadocs/javax/mail/Header.html +http://www.intellicast.com/Sail/World/UnitedStates/FourCorners/Arizona/LakeMeadCanyon/LocalWinds/d1_18/ +http://genforum.genealogy.com/cgi-bin/print.cgi?guill::871.html +http://in.egroups.com/message/ucc-medicine/9 +http://in.egroups.com/message/ucc-medicine/14 +http://www-uk3.cricket.org/link_to_database/PLAYERS/WOMEN/AUS/WILSON_B_02011221/index.NSW-WOMEN.html +http://ftp.du.se/disk4/FreeBSD/FreeBSD-current/www/ja/releases/?M=A +http://www.citythek.de/koeln/eduscho/fsinhalt.htm +http://198.103.152.100/search*frc/cCA1+MPY30+97C31/cca1+mpy30+97c31/-5,-1,,E/browse +http://ftp.nsysu.edu.tw/Linux/RedHat/doc/en/HOWTOS/localization/Serbian/?N=D +http://mk158.tripod.co.jp/old/praga1/do/bio.html +http://oneplace.adbureau.net/accipiter/adclick/site=ONEPLACE/area=INDEX/POSITION=FOOTER/AAMSZ=468x60/ACC_RANDOM=449975866078 +http://members.tripod.co.jp/Primrose/honeydcolumn3.html +http://911codes.com/games/platform/n64/sect/div/cont/list_cheat/spray/y/id/0000009564/gid/0000003291/_cheats/_walkthroughs/_codes/_pc/_n64/_psx/_gameboy/_playstation/ +http://iqseek.shop.goto.com/compperiph/monfol/mon/search/detail.jhtml?MANUF=ViewSonic&MODEL=E790 +http://iqseek.shop.goto.com/compperiph/monfol/mon/search/detail.jhtml?MANUF=ViewSonic&MODEL=GA655 +http://plat.debian.or.jp/debian/dists/stable/main/binary-powerpc/shells/?M=A +http://retailer.gocollect.com/do/session/1912686/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/shipping_policy.asp +http://vvv.geocities.co.jp/Playtown-Yoyo/5287/ +http://vvv.geocities.co.jp/Playtown-Yoyo/5714/ +http://vvv.geocities.co.jp/Playtown-Yoyo/5750/ +http://genforum.genealogy.com/cgi-genforum/forums/charpia.cgi?3 +http://www.amateurplatinum.com/tubal-ligationmilk/plus-sizecoushin-for-the-pushin/best-friendsjail-bait/vietnamese/ac/dclubrication/bisexualelbow-grease.html +http://library.bangor.ac.uk/search/tContemporary+psychology+series/tcontemporary+psychology+series/-17,-1,0,B/2exact&F=tcontemporary+problems+in+geography&1,4 +http://www-d0.fnal.gov/cgi-bin/cvsweb.cgi/calreco/VERSION?only_with_tag=p05-br +http://www.158china.com/news/2000/08/21/52747.htm +http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx031009.txt +http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx031106.txt +http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx031208.txt +http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx031507.txt +http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx032406.txt +http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx032902.txt +http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx041501.txt +http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx041611.txt +http://www.ln.cei.gov.cn/dh/hgjj/wscf/hx/hx1.txt +http://wuarchive.wustl.edu/edu/math/software/multi-platform/SLATEC/G/G2/G2H/G2H2/sbols/ +http://www.loststars.net/story4/ab200-2.html +http://www.indian-express.com/ie/daily/19981219/35350564.html +http://www.indian-express.com/ie/daily/19981219/35351234.html +http://www.homestead.com/jennyb/pets.html +http://www.allgemeine-immobilien-boerse.de/kanada/verkauf/Gemeinsam/Inserieren/Allgemeine-IB/Versteigerungen-IB/Startseite/Gemeinsam/suche.htm +http://www.sankei.co.jp/databox/paper/9808/06/paper/today/sports/soccer/06soc002.htm +http://rex.skyline.net/navigate.cgi?history,collectibles,recreation,sculpture,arts +http://tjohoo.se/sport/snowboard/2.php3 +http://www.du-et.net/prof/n/nkaworu.html +http://www.iwon.com/home/movies/movies_summary_page/0,13160,383543,00.html +http://www.iwon.com/home/movies/movies_summary_page/0,13160,481885,00.html +http://www.iwon.com/home/movies/movies_summary_page/0,13160,372508,00.html +http://pub13.ezboard.com/fvisualbasicexplorergettingstarted.emailToFriend?topicID=861.topic +http://www.fogdog.com/cedroID/ssd3040183158417/customer_service/ +http://www.fogdog.com/cedroID/ssd3040183158417/cgi-bin/CedroCommerce?func=EditBasket +http://www.fogdog.com/cedroID/ssd3040183158417/nav/products/cycling/1y/software/ +http://www.niwl.se/wais/new/28/28189.htm +http://retailer.gocollect.com/do/session/1912674/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp +http://www.trax.nilex.co.uk/trax.cgi/A1C/A2R/A2U/B3R/A1U/Resign/ +http://www.sofitware.com/books/sci05/0471969664.html +http://www.genome.wustl.edu:8021/gsc1/est/zebrafish_reports/old_rank_reports/zebrafish.rank.990322 +http://www.genome.wustl.edu:8021/gsc1/est/zebrafish_reports/old_rank_reports/zebrafish.rank.991004 +http://www.farhi.org/ps01/ps01_015.htm +http://www-usa10.cricket.org/link_to_database/ARCHIVE/WORLD_CUPS/WC99/STATS/BY_TEAM/SL/WC99_BOWL_BEST_INNS_SR_SL.html +http://www.online.kokusai.co.jp/Stock_corner/V0043480/wrd/G500/stock_corner/stock_corner.html +http://www.online.kokusai.co.jp/Mmf_corner/V0043480/mmf_corner/mmf_corner/url +http://mediate.magicbutton.net/do/session/625604/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-cust.html +http://www.malaysia.net/lists/sangkancil/1999-05/frm00449.html +http://www.bigstar.com/contest/index.cfm/4ae093fg371d8ddg3?fa=contest +http://www.bigstar.com/tv/index.cfm/4ae093fg371d8ddg3 +http://linux.tucows.dia.dk/gnomehtml/adnload/49933_5879.html +http://dc.web.aol.com/roanoke/health/directories.dci?type=professionals +http://dc.web.aol.com/roanoke/health/categories.dci?category=fitnessdiet +http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux/drivers/isdn/icn/Makefile?only_with_tag=davem-cvs-merge +http://dennou-h.gfd-dennou.org/arch/cc-env.old/db/?M=A +http://www.envy.nu/wildcats/gare.html +http://www.envy.nu/wildcats/horst.html +http://www.linux.com/networking/network/release/performance/updates/Netscape/ +http://ftpsearch.belnet.be/pub/os/linux/Linux-sunsite.unc/distributions/ultra/Users-Guide/?S=A +http://www.chaos.dk/sexriddle/n/f/p/g/a/ +http://pub24.ezboard.com/fphilosophersstonefrm7.showAddTopicScreenFromWeb +http://pub24.ezboard.com/fphilosophersstonefrm7.showMessage?topicID=10.topic +http://www.yorosiku.net:8080/-_-http://www2.biglobe.ne.jp/~animenet/jan222/note/bbs2.html +http://www.web-chart.com/Detail.htm?s=2568&c=229 +http://www.brio.de/BRIO.catalog/39fe2f5009021d362740d472aa780645/UserTemplate/8 +http://www.service911.com/egghead/step/0,2743,10+55+157+24348+17295_2,00.html +http://home.pchome.com.tw/computer/judy7777/fast-7.htm +http://big5.peopledaily.com.cn/zdxw/11/20000126/200001261111.html +http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31792/lst/qqo/012D +http://sunsite.org.uk/public/usenet/news-faqs/alt.answers/paranormal/faq +http://newsone.net/nnr/listl/alt.bbs.elebbs/1 +http://ourworld.compuserve.com/homepages/hallg/mg_vor.htm +http://www.world001.com/forum/yue/1573.html +http://www.greenleaves.com/bookcat/gb_1567112730.html +http://quotidiano.monrif.net/chan/motori:1119539:/2000/10/30: +http://quotidiano.monrif.net/chan/motori:926303:/2000/10/30: +http://quotidiano.monrif.net/chan/motori:944719:/2000/10/30: +http://home.online.tj.cn/~madgoe/subtitle/nt/nt363.htm +http://home.online.tj.cn/~madgoe/subtitle/nt/nt352.htm +http://home.online.tj.cn/~madgoe/subtitle/nt/nt343.htm +http://home.online.tj.cn/~madgoe/subtitle/nt/nt327.htm +http://home.online.tj.cn/~madgoe/subtitle/nt/nt320.htm +http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=Vincze +http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=ving +http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=Vinrye +http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=Vinzy +http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=violinist +http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=Violin +http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=vione +http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=viper0669 +http://www.missouri.edu/HyperNews/get/writery/poetry/1.html?embed=-1 +http://www.missouri.edu/HyperNews/get/writery/poetry/6.html?outline=1&embed=1 +http://www.missouri.edu/HyperNews/get/writery/poetry/9.html?outline=-1&embed=1 +http://www.missouri.edu/HyperNews/get/writery/poetry/20.html?outline=3&embed=1 +http://www.missouri.edu/HyperNews/get/writery/poetry/21.html?outline=-1&embed=1 +http://www.missouri.edu/HyperNews/get/writery/poetry/23.html?outline=1&embed=1 +http://www.missouri.edu/HyperNews/get/writery/poetry/38.html?outline=1&embed=1 +http://fi.egroups.com/messages/Avon3DayBoston/5 +http://www.online.kokusai.co.jp/Demo/V0043481/wrd/G400/demo/ +http://www.jamba.de/KNet/_KNet-TQt8j1-PEd-139qr/showInfo-werbung.de/node.0/cde7f1uou +http://computalynx.tucows.com/winnt/adnload/73435_29524.html +http://www.intellicast.com/Golf/World/UnitedStates/Northwest/Oregon/OregonDunes/THUNDERcast/d2_06/ +http://202.105.55.146/h0/news/200009/20/jty7.htm +http://pda.tucows.edisontel.com/newton/newtsfiction_size.html +http://pda.tucows.edisontel.com/newton/adnload/33238_19961.html +http://hem.fyristorg.com/lottaleman/LLfar/1_2942.htm +http://www.norrblom.com/..\hund\1996\s2665496.htm +http://www.ferien-immobilien.de/niedersachsen/weserbergland/Verkauf/Gemeinsam/MarketingStrategie/Allgemeine-IB/Gemeinsam/Super-Zins-Konditionen/Private-IB/Startseite/Default.htm +http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=14,18,11,9,15,8 +http://dennou-h.gfd-dennou.org/arch/cc-env.old/xtop/TEBIKI.top.rs590 +http://www.amzn.com/exec/obidos/search-handle-url/index=vhs&field-director=Jim%20Stenstrum/ +http://www.amzn.com/exec/obidos/tg/browse/-/169237/ +http://www.flora.org/flora.oclug/old-6088 +http://www.msn.expedia.co.uk/wg/Images/P24601.htm +http://www.asahi-net.or.jp/~ei2h-kdu/photos/rail/sanin/amarube3.html +http://au.yahoo.com/Business_and_Economy/Shopping_and_Services/Health/Providers/By_Region/U_S__States/Montana/Complete_List/ +http://www.staroriental.net/nav/soeg/ihf,aai,n2,118,Electric+Wave+Girl+1998.html +http://www.hig.se/(accessed,formoutput,referrer,smallcaps,sqlquery)/~jackson/roxen/ +http://carefinder.digitalcity.com/fargond/sports/team.dci?league=NF2&team=VAC +http://carefinder.digitalcity.com/fargond/sports/team.dci?league=NF2&team=GAA +http://carefinder.digitalcity.com/fargond/sports/team.dci?league=NF2&team=AAB +http://carefinder.digitalcity.com/fargond/sports/team.dci?league=NF2&team=AAF +http://newnova.tucows.com/preview/60922.html +http://www-d0.fnal.gov/d0dist/dist/releases/test/l3fsmtcluster/rcp/?S=A +http://www.cs.rit.edu/~ats/inferno/man/html/proto8.htm +http://dandini.cranfield.ac.uk/vl=-39835473/cl=140/nw=1/rpsv/cw/web/nw1/browse.htm +http://homepage.mac.com/nanameneko/job/architecture-oriented/OHP/Why/why_05.html +http://ftp.sunet.se/pub/FreeBSD/FreeBSD-current/ports/games/CaribbeanStud/?M=A +http://ftp.sunet.se/pub/FreeBSD/FreeBSD-current/ports/games/CaribbeanStud/distinfo +http://ads3.zdnet.com/c/g=r734&c=a53975&idx=2000.10.30.21.30.24/www.zdnet.com/downloads/stories/info/0,,000FDG,.html +http://yp.gates96.com/6/57/80/89.html +http://yp.gates96.com/6/57/81/42.html +http://yp.gates96.com/6/57/81/66.html +http://yp.gates96.com/6/57/82/16.html +http://yp.gates96.com/6/57/82/61.html +http://yp.gates96.com/6/57/83/37.html +http://yp.gates96.com/6/57/83/54.html +http://yp.gates96.com/6/57/84/14.html +http://yp.gates96.com/6/57/85/7.html +http://yp.gates96.com/6/57/85/24.html +http://yp.gates96.com/6/57/85/35.html +http://yp.gates96.com/6/57/85/64.html +http://yp.gates96.com/6/57/86/80.html +http://yp.gates96.com/6/57/86/96.html +http://yp.gates96.com/6/57/87/15.html +http://yp.gates96.com/6/57/89/2.html +http://yp.gates96.com/6/57/89/95.html +http://www.oncology.com/v2_MainFrame/1,1614,_12|00332|00_21|002|00_04|0039|00_38|00188,00.html +http://library.bangor.ac.uk/search/aEllis,+Gail/aellis+gail/-5,-1,0,B/exact&F=aellis+griffith+1844+1913&1,9 +http://www.rezel.enst.fr/ftp/linux/distributions/debian/CD-2/debian/dists/unstable/contrib/source/mail/?S=A +http://itcareers.careercast.com/texis/it/itjs/+SwwBmeYKD86e8hwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewhPndhBiwGna5O5BnManDtoDnnGamn5otDamnVncdpaGnwcaBoMnaoDhdGMwBodDaDnBidGAanLpnGonDqnaMFqhTfR20Dzme4twwwpBmex_D86ejxwww5rme6dwwwBrmeZpwww/morelike.html +http://esatnet.tucows.com/winnt/adnload/31316_29136.html +http://home.c2i.net/w-225961/steinare/brosjyre.htm +http://aleph.tau.ac.il:4500/ALEPH/ENG/ATA/AAS/AAS/FIND-ACC/0860271 +http://www.chaos.dk/sexriddle/v/c/w/d/r/ +http://www9.hmv.co.uk:5555/do/session/1347760/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d135_sd0_pt0.html +http://tagesanzeiger.ch/archiv/99november/991122/79295.HTM +http://www.pacifictech.com.cn/pcsoftware/sj/jq/00803.htm +http://www.pacifictech.com.cn/pcsoftware/sj/jq/00430b.htm +http://www.pacifictech.com.cn/pcsoftware/zl/syjq/dmtgj/old/tuxing/3d/20000131.html +http://www.building.com/communities/texis/db/go/+DexVFdeKmYnwrmwxerJOwrmwx3exmww/profile.html +http://my.egroups.com/message/mathies/43?source=1 +http://www.brio.de/BRIO.catalog/39fe2f5706df064c273fd472aa78067c/UserTemplate/6 +http://www.brio.de/BRIO.catalog/39fe2f5706df064c273fd472aa78067c/UserTemplate/9 +http://www.egroups.com/messages/GollyBeenz/44 +http://www.buybuddy.com/sleuth/15/1/1020507/495848/ +http://www.brio.de/BRIO.catalog/39fe2f41010c308a2742d472aa7806a7/UserTemplate/5 +http://www.ferien-immobilien.de/hessen/bad-hersfeld/Verkauf/IIM-Teil/Startseite/Private-IB/Allgemeine-IB/Gemeinsam/versicherungen/gebaeude/deckungsumfang.htm +http://www.ferien-immobilien.de/hessen/bad-hersfeld/Verkauf/IIM-Teil/Startseite/Private-IB/Allgemeine-IB/Gemeinsam/impressum.htm +http://beetle.marion.ohio-state.edu/Bratt2000/D0029/I10769.html +http://members.tripod.lycos.co.kr/RAINBOR/?D=A +http://www.eos.ncsu.edu/eos/info/bae/bae324_info/ +http://www.chez.com/mousis/vg/aqui/pages/0006.htm +http://search.chollian.net/cgi-bin/filter.cgi?cid=2052&p=1 +http://channel.nytimes.com/1998/03/15/technology/cybertimes/eurobytes/ +http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=13,4,2,7,11 +http://uk.dir.yahoo.com/Regional/Countries/Mexico/States/Baja_California/Cities/Ensenada/Travel_and_Transportation/Accommodation/Caravan_Parks_and_Campgrounds/ +http://ring.toyama-ix.net/archives/mac/info-mac/inet/_Mail/_Eudora/ +http://sport.voila.fr/it/calcio/euro2000/teams/por/squad/nunogomes.html +http://idefix-41.cs.kuleuven.ac.be/~henk/DPS/ +http://library.bangor.ac.uk/search/dLaw+--+Study+and+teaching+--+Great+Britain/dlaw+study+and+teaching+great+britain/-5,-1,0,B/buttonframe&F=dlaw+study+and+teaching+great+britain&7,,7 +http://www.eveclub.com/cgi-bin/eveclub.front/972959440822/Catalog/1000002 +http://www.eveclub.com/cgi-bin/eveclub.front/972959440822/Catalog/1000062 +http://ring.shibaura-it.ac.jp/archives/FreeBSD-PC98/dists/4.0-RELEASE/XF86336/PC98-Servers/?N=D +http://www.uq.edu.au/site-index/index.phtml?site_tree_data=1,91,95,203,338,344,2,6,182,148 +http://www.uq.edu.au/site-index/index.phtml?site_tree_data=1,91,95,203,338,344,2,6,182,163 +http://www.xmission.com/(apocalypse,art,caffiene,geek,misc,music,music,caffiene,art,toys,dots,edge,misc,shopping,ftp,places,privacy,geek,cuseeme,apocalypse,people,stuffiuse,people,places,shopping,stuffiuse,toys)/~bill/links.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=confinarias&l=pt +http://www.xmission.com/(apocalypse,art,caffiene,cuseeme,geek,misc,music,music,caffiene,art,toys,dots,edge,misc,shopping,ftp,places,privacy,geek,cuseeme,apocalypse,people,stuffiuse,places,privacy,stuffiuse,toys)/~bill/links.html +http://www.gigclub.co.jp/tanigawa/tanigawa/980915/menu.html +http://www.3w-sciencefiction.de/SmithWilliamK/SmithWilliamK0126528756.htm +http://w3c1.inria.fr/Mobile/posdep/Presentations/Mogid/sld014.htm +http://members.tripod.co.jp/view_i/p.html +http://202.99.23.245/zdxw/11/20000317/200003171117.html +http://www.jpc-music.com/7334085.htm +http://library.bangor.ac.uk/search/aLibrary+Association/alibrary+association/-5,-1,0,B/buttonframe&F=alibrary+association&2,,64 +http://www.sf.digitalcity.com/puntagordafl/sports/team.dci?league=FSL&team=CHA +http://www.sf.digitalcity.com/puntagordafl/sports/team.dci?league=FSL&team=LAK +http://brain.brent.gov.uk/__802564ff0045d739.nsf/vWebAllPagesByLocsSrvd!OpenView&Start=33&Count=60&Collapse=45 +http://www.nypost.com/news/933.htm +http://www.nypost.com/business/979.htm +http://www.nypost.com/living/951.htm +http://www.computer-networking.de/studenten/cn_intern/bauer/jobst/k07-graphik-gui/controls/swing/ +http://194.55.30.33/albanian/tema_gjermane/67823.html +http://194.55.30.33/albanian/tema_gjermane/65962.html +http://yp.gates96.com/14/85/10/12.html +http://yp.gates96.com/14/85/11/98.html +http://yp.gates96.com/14/85/12/24.html +http://yp.gates96.com/14/85/13/57.html +http://yp.gates96.com/14/85/14/92.html +http://yp.gates96.com/14/85/16/37.html +http://yp.gates96.com/14/85/16/51.html +http://yp.gates96.com/14/85/16/78.html +http://yp.gates96.com/14/85/17/38.html +http://yp.gates96.com/14/85/17/48.html +http://yp.gates96.com/14/85/17/91.html +http://yp.gates96.com/14/85/19/35.html +http://yp.gates96.com/14/85/19/88.html +http://genforum.genealogy.com/cgi-genforum/forums/deppen.cgi?3 +http://www.ferien-immobilien.de/nordrhein-Westfalen/Muehlheim-ruhr/Verkauf/Private-IB/Startseite/Gemeinsam/Inserieren/Versteigerungen-IB/Startseite/Ferien-IB/Startseite/ +http://www.redrocksports.com/sports/webSession/shopper/RR972959668-31057/store/dept-5/department/dept-5/item/51800 +http://www.redrocksports.com/sports/webSession/shopper/RR972959668-31057/store/dept-5/department/dept-5/item/53510 +http://www.redrocksports.com/sports/webSession/shopper/RR972959668-31057/store/dept-5/department/dept-5/item/52600 +http://www.redrocksports.com/sports/webSession/shopper/RR972959668-31057/store/dept-5/department/dept-5/item/50510 +http://www.redrocksports.com/sports/webSession/shopper/RR972959668-31057/store/dept-5/department/dept-5/item/50400 +http://polygraph.ircache.net:8181/http_-2www.horizonfinance.com/http_-2www.netscape.com/download/http_-2www.microsoft.com/ie/http_-2207.91.150.20/http_-2www.updowntowner.org/julyjamm/headliners.html +http://www.ccurrents.com/magazine/national/1702/nets31702.html +http://adept.subportal.com/sn/Themes/Vehicle_Themes/5090.html +http://www.fogdog.com/cedroID/ssd3040183211390/nav/products/outlet/1a/fishing/ +http://www.linux.com/networking/network/communications/article/unix/sales/ +http://fyi.cnn.com/content/US/9902/25/germans.death.penalty.ap/ +http://fyi.cnn.com/US/9902/09/monk.execute.ap.02/ +http://fyi.cnn.com/WORLD/asiapcf/9902/06/PM-Philippines-DeathPena.ap/ +http://pub11.ezboard.com/ucivik.showPublicProfile +http://playboy.software.net/PKIN005896/prod.htm +http://www.linux.com/networking/network/help/free/performance/install/ +http://www.linux.com/networking/network/help/free/performance/X/ +http://se.egroups.com/message/ghost_tales/1490 +http://niteowl.userfriendly.net/linux/RPM/rawhide/1.0/i386/usr_src_linux-2.4.0_include_Tree.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=coexistissem&l=pt +http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/21_HADM.HTM +http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/25_HADM.HTM +http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/86_HADM.HTM +http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/88_HADM.HTM +http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/90_HADM.HTM +http://promed.univ-rennes1.fr/cerf/ico_an/IDRE/HADM6.HTM +http://www.estrelladigital.es/000814/articulos/economia/correos.htm +http://itcareers.careercast.com/texis/it/itjs/+awwBme4CD86LxwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewPPnBwpcnaqdGpdGwBnaoDhdGMwBodDahoDma5BdGnaq15BdMnGa5nGVoqnaqdDBwqBamo5BGox1BodDaMwDwtnMnDBaMFqrIRE7P0IDzme_xwwwpBmHe0B-deaqwww5rmsmwwBrme7Dwww/morelike.html +http://yp.gates96.com/3/79/50/30.html +http://yp.gates96.com/3/79/50/54.html +http://yp.gates96.com/3/79/51/1.html +http://yp.gates96.com/3/79/51/11.html +http://yp.gates96.com/3/79/51/80.html +http://yp.gates96.com/3/79/52/27.html +http://yp.gates96.com/3/79/52/81.html +http://yp.gates96.com/3/79/53/81.html +http://yp.gates96.com/3/79/54/0.html +http://yp.gates96.com/3/79/54/31.html +http://yp.gates96.com/3/79/55/74.html +http://yp.gates96.com/3/79/55/78.html +http://yp.gates96.com/3/79/56/72.html +http://yp.gates96.com/3/79/57/0.html +http://yp.gates96.com/3/79/58/27.html +http://yp.gates96.com/3/79/58/31.html +http://yp.gates96.com/3/79/58/48.html +http://yp.gates96.com/3/79/58/76.html +http://yp.gates96.com/3/79/58/99.html +http://yp.gates96.com/3/79/59/27.html +http://yp.gates96.com/3/79/59/32.html +http://yp.gates96.com/3/79/59/49.html +http://yp.gates96.com/3/79/59/81.html +http://yp.gates96.com/3/79/59/83.html +http://startribune.atevo.com/misc/print_article/0,3869,4504302,00.html +http://browse.carnaby.com/home/showcase/6/381/2078/A0638120780000EA01.html +http://www.checkout.com/music/earmail/form/1,7650,325272-1761567,00.html +http://ring.shibaura-it.ac.jp/archives/doc/jpnic/minutes/committee/200007/shiryou-4-1.txt +http://www.secinfo.com/d1ZMQs.51h.htm +http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/AtlantisPBEM/CVSROOT/modules?only_with_tag=MAIN +http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/AtlantisPBEM/CVSROOT/modules?only_with_tag=HEAD +http://ftp.bitcon.no/tucows/adnload/4961_28325.html +http://yp.gates96.com/3/37/0/21.html +http://yp.gates96.com/3/37/0/29.html +http://yp.gates96.com/3/37/0/80.html +http://yp.gates96.com/3/37/0/87.html +http://yp.gates96.com/3/37/1/9.html +http://yp.gates96.com/3/37/2/83.html +http://yp.gates96.com/3/37/2/92.html +http://yp.gates96.com/3/37/3/26.html +http://yp.gates96.com/3/37/4/9.html +http://yp.gates96.com/3/37/4/29.html +http://yp.gates96.com/3/37/5/31.html +http://yp.gates96.com/3/37/5/49.html +http://yp.gates96.com/3/37/5/51.html +http://yp.gates96.com/3/37/5/63.html +http://yp.gates96.com/3/37/5/95.html +http://yp.gates96.com/3/37/6/0.html +http://yp.gates96.com/3/37/6/4.html +http://yp.gates96.com/3/37/7/22.html +http://yp.gates96.com/3/37/8/10.html +http://yp.gates96.com/3/37/8/50.html +http://yp.gates96.com/3/37/8/92.html +http://yp.gates96.com/3/37/9/46.html +http://ftp.digex.net/debian/dists/woody/contrib/binary-sh/libs/?N=D +http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=4,15,12,16 +http://in.egroups.com/group/bbw-uk +http://home.swipnet.se/~w-20817/ +http://shop.puretec.de/kunden/19867293/detailansicht_Aku1025B.html +http://www.rezeptkoch.de/Rezepte/Heimisches_/Gemuse/Sommerliche_Gemusegerichte/sommerliche_gemusegerichte_2.html +http://www.rezeptkoch.de/Rezepte/Heimisches_/Gemuse/Kohl/kohl_4.html +http://www.rezeptkoch.de/Rezepte/Heimisches_/Gemuse/Kohl/kohl_11.html +http://www.chinainvest.com.cn/C/Showdetail/20359.html +http://tucows.sp-plus.nl/winme/preview/141310.html +http://www.al-hujjat.grid9.net/gnomehtml/ent_enhance_rating.html +http://www.warmbloods.net/breeding/_vti_bin/shtml.dll/disc123_post.htm?1260 +http://ftp.sunet.se/pub/FreeBSD/FreeBSD-current/ports/net/ruby-snmp/Makefile +http://basil.cs.uwp.edu/Documentation/java/jdk/docs/guide/sound/prog_guide/chapter3.fm.html +http://tucows.1web.it/winme/preview/75525.html +http://uk-wire.ukinvest.com/articles/200009180701200586R.html +http://www.ozon.ru/detail.cfm/ent=33&id=953&add2navigator=1&txt=1 +http://cometweb01.comet.co.uk/do!session=131984&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkkHbqpLZXmLbkZHljlKaltLkilLXalKfkaLbukKeqjLi1 +http://community.webshots.com/photo/3922869/3923445TSuTSQIWpD +http://www.eveclub.com/cgi-bin/eveclub.front/972959447434/Catalog/1000040 +http://www.tvstore.com/browse/TV/NIGHTSHI/s.nXZNPRgQ +http://www.tvstore.com/browse/TV/COMIC/s.nXZNPRgQ +http://www.xmwb.sh.cn/xmwb/19981016/GB/13389^8101623.htm +http://helios.nlib.ee/search*est/tThe+threshold+series/tthreshold+series/-5,-1,0,B/frameset&F=tthrillers&1,1 +http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=23,9,7,18 +http://ftp.bitcon.no/pub/windowsce/epoc/desktop5.htm +http://ftp.lip6.fr/pub2/sgml-tools/website/HOWTO/Multicast-HOWTO/t1595.html +http://ftp.rge.com/pub/X/XFree86/3.3.3.1/untarred/xc/programs/Xserver/ +http://ftp.rge.com/pub/X/XFree86/3.3.3.1/untarred/xc/programs/xwud/ +http://syix.tucows.com/win2k/adnload/73370_29328.html +http://yp.gates96.com/0/54/80/40.html +http://yp.gates96.com/0/54/80/56.html +http://yp.gates96.com/0/54/80/61.html +http://yp.gates96.com/0/54/80/79.html +http://yp.gates96.com/0/54/81/11.html +http://yp.gates96.com/0/54/81/25.html +http://yp.gates96.com/0/54/81/58.html +http://yp.gates96.com/0/54/82/48.html +http://yp.gates96.com/0/54/82/75.html +http://yp.gates96.com/0/54/83/0.html +http://yp.gates96.com/0/54/84/12.html +http://yp.gates96.com/0/54/84/67.html +http://yp.gates96.com/0/54/85/47.html +http://yp.gates96.com/0/54/85/59.html +http://yp.gates96.com/0/54/86/52.html +http://yp.gates96.com/0/54/86/55.html +http://yp.gates96.com/0/54/86/79.html +http://yp.gates96.com/0/54/86/87.html +http://yp.gates96.com/0/54/87/12.html +http://yp.gates96.com/0/54/87/81.html +http://yp.gates96.com/0/54/88/97.html +http://yp.gates96.com/0/54/89/90.html +http://www.yorosiku.net:8080/-_-http://liinwww.ira.uka.de/bibliography/Distributed/SIGCOMM.94.html +http://news.pchome.com.tw/ftv/health/20000915/ +http://www.emis.de/journals/EJDE/Volumes/Volumes/Monographs/1998/05/?N=D +http://travelocity-dest.excite.com/DestGuides/0,1840,TRAVELOCITY|5706|3|1|159040|photo_id|4022,00.html +http://travelocity-dest.excite.com/DestGuides/0,1840,TRAVELOCITY|5706|3|1|159040|photo_id|4020,00.html +http://lhcbsoft.web.cern.ch/LHCbSoft/simmuon/v1/mgr/CVS/Root +http://tucows.soneraplaza.nl/winme/adnload/137454_28942.html +http://www.borland.nl/techpubs/jbuilder/jbuilder3/ui/wclass.html +http://fi.egroups.com/links/dssf +http://www.homestead.com/jcv2000/MBoard.html +http://careershop.resumeshotgun.com/directory/italy/sardegna/o.10.p.4408.html +http://www.hantsnet.co.uk/istcclr/cch32751.html +http://www.hantsnet.co.uk/istcclr/cch16729.html +http://www.hantsnet.co.uk/istcclr/cch03788.html +http://www.hantsnet.co.uk/istcclr/cch05491.html +http://www.hantsnet.co.uk/istcclr/cchr0418.html +http://www.hantsnet.co.uk/istcclr/cchh2289.html +http://www.hantsnet.co.uk/istcclr/cchh2074.html +http://www.hantsnet.co.uk/istcclr/cch30426.html +http://www.hantsnet.co.uk/istcclr/cch11726.html +http://www.hantsnet.co.uk/istcclr/cch03858.html +http://www.hantsnet.co.uk/istcclr/cche0920.html +http://www.hantsnet.co.uk/istcclr/cch34768.html +http://www.hantsnet.co.uk/istcclr/cchc2067.html +http://www.hantsnet.co.uk/istcclr/cche1085.html +http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/53771000000443000000339400000065451/v2tvindex.wo/614720000055451/1.14/3/Webobjects1 +http://www.sternonline.de/magazin/fotogalerie/hinz/index5.html +http://www.envy.nu/Sing.html +http://employment.subportal.com/sn/Themes/ +http://www.diogenes.ch/4DACTION/web_rd_aut_prview/a_id=7002120&area=&ID=483332 +http://wlink.tucows.com/winme/adnload/137847_29260.html +http://tucows.computalynx.net/winnt/adnload/71633_28766.html +http://ftp.up.pt/Linux/debian/dists/stable/main/disks-m68k/?M=A +http://lcweb2.loc.gov/ll/llnt/009/0000/ +http://www.magma.ca/~denisd/africa/day02.html +http://www.magma.ca/~denisd/africa/day16.html +http://content.health.msn.com/message_board_author/802072 +http://ep.com/js/about/c0/189455 +http://ep.com/js/about/c0/154005 +http://www.realbig.com/miata/miata/1999-12/2340.html +http://www.multimap.com/wi/33738.htm +http://www.multimap.com/wi/148724.htm +http://www.bemi-immobilien.de/Landhaus-Bordeaux/Gemeinsam/3d-service/Gemeinsam/versicherungen/lebensversicherung/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/lebensversicherung/Gemeinsam/MarketingStrategie/Strategie.htm +http://link.fastpartner.com/do/session/600347/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/create/learn.htm +http://pub16.ezboard.com/fisnforumsfrm16.subscribeUnregisteredToTopic?topicID=731.topic +http://freesoftware.subportal.com/sn/Business/Application_Add-ins/726.html +http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/deskutils/genius/files/?sortby=date +http://www.madein.nnov.ru/stat/index.phtml?cid=418&t=3 +http://citeseer.nj.nec.com/correct/294145 +http://www.phillips.semiconductors.com/pip/PCF5001H +http://www.tvstore.com/browse/TV/BANK/s.Vaphccqs +http://www.tvstore.com/browse/TV/SCRIPT/s.Vaphccqs +http://www.tvstore.com/aboutus/s.Vaphccqs +http://www.fogdog.com/cedroID/ssd3040183205929/nav/products/featured_brands/3b/arm_warmers/ +http://orders.mkn.co.uk/bear/steiff/classic/order/now.en$NOK?what-e=1 +http://www.crutchfield.com/S-jtpRS1P7vRY/help/ +http://www06.u-page.so-net.ne.jp/tb3/y-miyu/azure/kodatour.htm +http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/japanese/escpf/distinfo +http://no.egroups.com/subscribe/Theater_plays +http://www.equipe.fr/Football/FootballFicheJoueur8954_0.html +http://www.equipe.fr/Football/FootballFicheJoueur6039_0.html +http://www.pmdc.org.uk/dogsdb/p00/P00133.HTM +http://ip.tosp.co.jp/i.asp?i=nononatti3 +http://tucows.wlink.com.np/adnload/144221_48889.html +http://store.yahoo.co.jp/I/naturum_1590_147867488 +http://providenet.office.tucows.com/adnload/77414_41755.html +http://providenet.office.tucows.com/adnload/73011_41097.html +http://www.goldersgreen.londonengland.co.uk/medicalequipmentrentalandleasing.htm +http://www.online.kokusai.co.jp/Mmf_corner/V0043462/mmf_corner/mmf_corner/url +http://www.qth.net/archive/packrats/200008/20000804.html +http://www.expage.com/buffykat11nelly +http://dk.egroups.com/login.cgi?login_target=%2Fmessages%2Fbbs_people +http://dk.egroups.com/message/bbs_people/23 +http://www.linux.com/networking/network/technology/free/development/learning/ +http://www.chaos.dk/sexriddle/r/x/z/t/l/ +http://www.opensecrets.org/lobbyists/98profiles/5918.htm +http://www.cbs.sportsline.com/u/football/nfl/kids/players/3418.htm +http://www.cbs.sportsline.com/u/football/nfl/kids/players/3868.htm +http://www.cbs.sportsline.com/u/football/nfl/kids/players/133268.htm +http://www.hig.se/(apre,clientname,countdown,language,set_cookie)/~jackson/roxen/ +http://www.platogmbh.de/plato/home.nsf/c81870434660ba41c125652a0029a47a/fb7566ed772f8580c12566f00036ac59!OpenDocument&ExpandSection=4,8,11,12 +http://www.fogdog.com/cedroID/ssd3040183211315/nav/products/featured_brands/2m/kick_sprint_boards/ +http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/folderFrame/100001/0/alpha/2458960 +http://www.jamba.de/KNet/_KNet-ONt8j1-NEd-139p9/showInfo-jobs.de/node.0/cde7f1uou +http://www.jamba.de/KNet/_KNet-ONt8j1-NEd-139pf/browse.de/node.0/cdzqggtyb +http://iland.tucows.com/win2k/adnload/38318_29882.html +http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~S~020060~04880',00.html +http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~S~020060~35840',00.html +http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~S~020060~90237',00.html +http://sunsite.org.uk/public/usenet/news.answers/alt.answers/self-impr-faq/part1 +http://ftp.bitcon.no/pub/simtelnet/win95/fileutl/?S=A +http://totalsports.aol.com/stats/bbo/mlb/20000517/bal.at.ana.game.html +http://au.yahoo.com/Regional/U_S__States/Virginia/Counties_and_Regions/Henrico_County/Business_and_Shopping/Shopping_and_Services/Travel/ +http://ftp.up.pt/Linux/debian/dists/unstable/main/binary-all/math/ +http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=10,17,13,14 +http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/japanese/vfghostscript/Makefile +http://polygraph.ircache.net:8181/yp/User_Contribs/http_-2home.netscape.com/comprod/mirror/ +http://www.emis.de/journals/EJDE/Volumes/Monographs/Volumes/1998/26/?S=A +http://www.smartshop.com/cgi-bin/main.cgi?c=314&a=contactus +http://213.36.119.69/do/session/152986/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/BE_NL/ +http://www.outdoorwire.com/lists/dirt/200009/msg01273.html +http://chicagocow.com/top/1,1419,M-Metromix-Home-Carryout!InputReview-9757--0,00.html +http://www.lithoquoter.com/Scripts/WebObjects.exe/Printers.woa/659920000022582000008720100000129302/main.wo/9193100000029302/4/-/prime +http://groups.haas.berkeley.edu/hcs/Docs/SASv8/sasdoc/sashtml/proc/z0292493.htm +http://groups.haas.berkeley.edu/hcs/Docs/SASv8/sasdoc/sashtml/proc/z0292495.htm +http://groups.haas.berkeley.edu/hcs/Docs/SASv8/sasdoc/sashtml/proc/z0292496.htm +http://www.outpersonals.com/cgi-bin/w3com/pws/out/jlhIVflnBPgWmpC4eFAjXlk3QXcFhcK-b9D_cbZyHLtTP5aigpMrgot7TKiIhNzg8y23_mmQAn7GVTQsvALIGIvJI8RFNXRZDuyGCzJ8JFs6ysbZfjgM3ik0nyIt5yhT_ujQhRI-42lzAOeb666j +http://www.nissan.co.jp/RENAULT-DEALERS/PASSPORT/view.cgi/admission/972959588-- +http://www.intellicast.com/Golf/World/UnitedStates/MidAtlantic/Virginia/RoyalNewKentGC/LocalWinds/d1_12/ +http://gbchinese.yahoo.com/headlines/001028/sports/ycwb/ycba28c003txttyxw00102800.html +http://gbchinese.yahoo.com/headlines/001028/sports/ycwb/ycba28c004txttyxw00102800.html +http://mx.php.net/manual/hu/language.references.unset.php +http://www.cbtravelguide.com/north_america/united_states/info_2.htm?sortby=city +http://www.intellicast.com/Sail/World/UnitedStates/Northwest/Idaho/Targhee/LocalWinds/d1_03/ +http://ftp.sunet.se/pub/FreeBSD/ports/ports-current/devel/libgii/distinfo +http://biblioteca.upv.es/bib/doc/doc_fisbd/816/149599//C/1826373/0////25/S/MLTPAI +http://willsmith.sonicnet.com/events/jay_z/index_sonicnet.jhtml +http://tucows.soneraplaza.nl/winme/tucowsme_license.html +http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/src/usr.sbin/fdcontrol/Makefile?only_with_tag=MAIN +http://www.kurit.com/ip/a5iu/dungeon/showsw1.html +http://www.mapion.co.jp/custom/AOL/admi/13/13118/minamisenju/3chome/index-30.html +http://yp.gates96.com/3/2/10/4.html +http://yp.gates96.com/3/2/10/19.html +http://yp.gates96.com/3/2/10/48.html +http://yp.gates96.com/3/2/10/52.html +http://yp.gates96.com/3/2/10/82.html +http://yp.gates96.com/3/2/11/10.html +http://yp.gates96.com/3/2/11/13.html +http://yp.gates96.com/3/2/13/31.html +http://yp.gates96.com/3/2/13/41.html +http://yp.gates96.com/3/2/13/43.html +http://yp.gates96.com/3/2/14/3.html +http://yp.gates96.com/3/2/14/19.html +http://yp.gates96.com/3/2/15/54.html +http://yp.gates96.com/3/2/15/72.html +http://yp.gates96.com/3/2/16/84.html +http://yp.gates96.com/3/2/17/22.html +http://yp.gates96.com/3/2/17/61.html +http://yp.gates96.com/3/2/18/1.html +http://yp.gates96.com/3/2/18/41.html +http://yp.gates96.com/3/2/18/58.html +http://yp.gates96.com/3/2/19/56.html +http://yp.gates96.com/3/2/19/79.html +http://www.stas.net/lonlywtrsoul/minesweeper/ms.html +http://ksu.freeyellow.com/ +http://www.genome.wustl.edu:8021/gsc10/est/yt/yt69/ +http://www.genome.wustl.edu:8021/gsc10/est/yt/yt82/ +http://www.winsite.com/info/pc/win95/miscutil/cutty10.exe/downltop.html +http://habenix.uni-muenster.de/Rektorat/Forschungsberichte-1997-1998/fo05bbe03.htm +http://www.jobvillage.com/channel/jobs/installation_repair/bicycle/g.3370.html +http://www.mordkommission.de/ratgeber/praxis/service/broschueren/40504/ +http://www.aelita.net/products/news/solutions/sitemap/company/library/default.htm +http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=acejet +http://cgi1.washingtonpost.com/wp-dyn/metro/va/alexandria/ +http://www.linux.com/networking/network/applications/interface/linux/distro/ +http://www2.brent.gov.uk/bv1nsf.nsf/031d5c68638196618025664000760871/963fe55ca97ccaa5802568f900503269!OpenDocument&Start=57.3&Count=60&Expand=69 +http://www2.brent.gov.uk/bv1nsf.nsf/031d5c68638196618025664000760871/963fe55ca97ccaa5802568f900503269!OpenDocument&Start=57.3&Count=60&Expand=72 +http://www2.brent.gov.uk/bv1nsf.nsf/031d5c68638196618025664000760871/963fe55ca97ccaa5802568f900503269!OpenDocument&Start=57.3&Count=60&Expand=87 +http://genforum.genealogy.com/cgi-genforum/forums/youngs.cgi?26 +http://www.tvstore.com/browse/TV/CAP/s.IRspZRIy +http://210.178.135.1/netbbs/Bbs.cgi/nhic30592/qry/zka/B2-kB2-p/pno/0/qqo/012A/qqatt/^ +http://home.sol.no/~leskjerv/aner/12063.htm +http://pub6.ezboard.com/fwatckkeepersgeneralwatchkeeperdiscussion?page=5 +http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/folderFrame/100217/0/def/1210456 +http://ftp.sunet.se/pub/FreeBSD/ports/ports-stable/games/xosmulti/?S=A +http://opac.lib.rpi.edu/search/ddata+processing+english+language+style/7,-1,0,B/browse +http://yp.gates96.com/7/40/0/5.html +http://yp.gates96.com/7/40/0/33.html +http://yp.gates96.com/7/40/1/27.html +http://yp.gates96.com/7/40/3/25.html +http://yp.gates96.com/7/40/3/36.html +http://yp.gates96.com/7/40/4/67.html +http://yp.gates96.com/7/40/4/77.html +http://yp.gates96.com/7/40/6/28.html +http://yp.gates96.com/7/40/6/49.html +http://yp.gates96.com/7/40/6/89.html +http://yp.gates96.com/7/40/7/21.html +http://yp.gates96.com/7/40/9/24.html +http://indonesian.wunderground.com/geo/GizmoTempBigPromo/global/stations/07434.html +http://www.teenplatinum.com/barelylegal/anal-sexass/legsred-toenail-polish/swallowspit/submissiondiscipline/maledomspanking/hardcorebondage.html +http://cgi.cnnsi.com/basketball/college/women/scoreboards/aeast/2000/10/18/ +http://cgi.cnnsi.com/basketball/college/women/scoreboards/aeast/2000/10/16/ +http://bellona.itworld.com:8080/cwi/Printer_Friendly_Version/frame/0,1212,NAV63-128-1357-1367_STO48482-,00.html +http://cdrwww.who.int/fsf/ehec.pdf +http://tw.yahoo.com/Regional/Countries_and_Regions/China/Provinces__Regions_and_Municipalities/Jiangxi/Cities_and_Towns/Nanchang/Real_Estate/ +http://tw.yahoo.com/Regional/Countries_and_Regions/China/Provinces__Regions_and_Municipalities/Jiangxi/Cities_and_Towns/Nanchang/Society_and_Culture/ +http://www.camden-industrial.com/supply/webSession/shopper/CI972959657-31048/store/dept-8 +http://www.msb.malmo.se/search*swe/mQdfm/mqdfm/-5,-1,0,E/2browse +http://tagesanzeiger.ch/archiv/96september/960903/213235.htm +http://yp.gates96.com/3/7/20/3.html +http://yp.gates96.com/3/7/20/28.html +http://yp.gates96.com/3/7/20/42.html +http://yp.gates96.com/3/7/21/5.html +http://yp.gates96.com/3/7/21/61.html +http://yp.gates96.com/3/7/22/18.html +http://yp.gates96.com/3/7/22/20.html +http://yp.gates96.com/3/7/22/24.html +http://yp.gates96.com/3/7/23/33.html +http://yp.gates96.com/3/7/23/49.html +http://yp.gates96.com/3/7/23/57.html +http://yp.gates96.com/3/7/24/22.html +http://yp.gates96.com/3/7/24/23.html +http://yp.gates96.com/3/7/24/27.html +http://yp.gates96.com/3/7/24/36.html +http://yp.gates96.com/3/7/24/45.html +http://yp.gates96.com/3/7/25/98.html +http://yp.gates96.com/3/7/26/56.html +http://yp.gates96.com/3/7/26/77.html +http://yp.gates96.com/3/7/26/94.html +http://yp.gates96.com/3/7/27/10.html +http://yp.gates96.com/3/7/27/17.html +http://yp.gates96.com/3/7/27/61.html +http://yp.gates96.com/3/7/27/73.html +http://yp.gates96.com/3/7/27/81.html +http://yp.gates96.com/3/7/27/82.html +http://yp.gates96.com/3/7/27/87.html +http://yp.gates96.com/3/7/28/48.html +http://yp.gates96.com/3/7/29/1.html +http://yp.gates96.com/3/7/29/8.html +http://yp.gates96.com/3/7/29/32.html +http://www.crit.org/http://www-mel.nrlmry.navy.mil/%ff:words:(MEL-is-a-sponsored-distributed-environmental-data-access-system-which-allows-users-to-search-for-browse-and-retrieve-environmental-data-from-distributed-sources) +http://www.crit.org/http://crit.org/pub/radiks.net/jwoods/%ff:words:jwoods-radiks-net-(A-More-Graceful-Transition)-An-expanded-definition +http://shn.webmd.com/roundtable_reply/802056 +http://shn.webmd.com/roundtable_author/802056 +http://bbs.bianca.com/mforums/e/expounder/posts/2000_Jan_09/3067/3073.html +http://www.spaindustry.com/ita/geosearch/navarra/navarra/ESLAVA.html +http://www.backflip.org/members/rj2nagle/4643211 +http://www.backflip.org/members/rj2nagle/7211888 +http://www.backflip.org/members/rj2nagle/5066953 +http://www.backflip.org/members/rj2nagle/5346740 +http://www.backflip.org/members/rj2nagle/5382951 +http://www.linux.com/networking/network/performance/help/va_linux_systems/server/ +http://www.secinfo.com/d178s.ad.htm +http://www.secinfo.com/d178s.9d.htm +http://www.secinfo.com/d178s.8b.htm +http://www.secinfo.com/d178s.8y.htm +http://iceberg.adhomeworld.com/cgi-win/redirect.exe/1153874888 +http://tmxy.363.net/refer-e.htm +http://www.narodnaobroda.sk/20000210/10_007.html +http://retailer.gocollect.com/do/session/1912712/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/index.asp +http://retailer.gocollect.com/do/session/1912712/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/halloween/halloween.asp +http://www.larevista.elmundo.es/documentos/secciones/ciencia.html +http://ftpsearch.belnet.be/mirrors/ftp.isc.org/pub/usenet/control/brightnet/?M=A +http://www.5a8.com/book/zt/zpj/k/kelisidi/wanshenjie/006.htm +http://www.5a8.com/book/zt/zpj/k/kelisidi/wanshenjie/019.htm +http://www.northwoods.bigsmart.com/mall/cat_automotive.cfm?drop_menu=yes +http://www.leg.wa.gov/pub/rcw%20-%20text/title_41/chapter_004/rcw_41_04_220.txt +http://www.leg.wa.gov/pub/rcw%20-%20text/title_41/chapter_004/rcw_41_04_364.txt +http://www.leg.wa.gov/pub/rcw%20-%20text/title_41/chapter_004/rcw_41_04_400.txt +http://www.leg.wa.gov/pub/rcw%20-%20text/title_41/chapter_004/rcw_41_04_630.txt +http://bsd.tucows.mol.com/x11html/adnload/69206_8129.html +http://ldp.teihal.gr/LDP/LG/issue22/notes-mode.html +http://ldp.teihal.gr/LDP/LG/issue22/haters.html +http://members.nbci.com/design_res/software_ftp.htm +http://www.nativeamerican-jewelry.com/necklace53.htm +http://members.theglobe.com/pamile/Pamela0004.html +http://webtools.familyeducation.com/whatworks/item/front/0,2551,22-9696-7350-1099-49655,00.html +http://wwws.br-online.de/geld/boerse/970909/072001.html +http://212.31.0.37/fix98/75yil/1938.htm +http://212.31.0.37/fix98/75yil/1950.htm +http://212.31.0.37/fix98/75yil/26ekl.htm +http://212.31.0.37/fix98/75yil/28ekl.htm +http://212.31.0.37/fix98/75yil/38ekl.htm +http://212.31.0.37/fix98/75yil/67ekl.htm +http://212.31.0.37/fix98/75yil/92ekl.htm +http://212.31.0.37/fix98/75yil/15ekl.htm +http://www.insurequotes.com/wa2/71J2.html +http://cn.egroups.com/message/csreye/112 +http://ring.crl.go.jp/archives/lang/perl/CPAN/authors/id/J/JA/JARIAALTO/?D=A +http://ds.dial.pipex.com/town/drive/kch36/select/s31/ch027.html +http://ds.dial.pipex.com/town/drive/kch36/select/s31/ch056.html +http://ds.dial.pipex.com/town/drive/kch36/select/s31/ch043.html +http://202.99.23.245/huadong/199905/25/no_4.html +http://www.linux.com/networking/network/industry/training/services/business/ +http://www.writtenbyme.com/articles/849308468.shtml +http://members.tripod.com/TroupeLynx/index_m.htm +http://polygraph.ircache.net:8181/http_-2www.horizonfinance.com/https_-2www.truste.org/validate/http_-2www.ziplink.net/~ralphb/newsroom/http_-2www.travelsc.com/industry/home.html +http://ftp.bitcon.no/pub/tucows/preview/1095.html +http://ftp.bitcon.no/pub/tucows/preview/870.html +http://ftp.bitcon.no/pub/tucows/preview/144675.html +http://ftp.bitcon.no/pub/tucows/preview/144869.html +http://ftp.bitcon.no/pub/tucows/preview/31162.html +http://ftp.bitcon.no/pub/tucows/preview/7724.html +http://ftp.bitcon.no/pub/tucows/preview/2691.html +http://ftp.bitcon.no/pub/tucows/preview/72841.html +http://ftp.bitcon.no/pub/tucows/preview/72185.html +http://www.jacksonhewitt.com/ctg/cgi-bin/JacksonHewitt/company_profile/AAAksrACwAAABtvAAX +http://search.excaliburfilms.com/moviepgs/goodbadanddirty.htm?currency=NOK&stock=8377V1 +http://search.excaliburfilms.com/moviepgs/goodbadanddirty.htm?currency=FRF&stock=8377V1 +http://genforum.genealogy.com/cgi-bin/print.cgi?torian::44.html +http://retailer.gocollect.com/do/session/1912702/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/newintros.asp +http://www.retrobytes.org/classiccmp/9911/msg00941.html +http://ftp.support.compaq.com/public/dunix/v3.2d-1/dce/?S=A +http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=CoyoteChief +http://www.collectingnation.com/cgi-bin/bn/request_email.mod?EHANDLE=cpatch +http://www.beanienation.com/cgi-bin/bn/view_feedback.mod?HANDLE=cpegasus +http://www.quzhou.gov.cn/flfg.nsf/0a043ae26eb50247002564640039f21d/483ed12afec2b31d002564ac0039427a!OpenDocument&ExpandSection=7,6,5 +http://www.luecos.de/wow/art/mu_newsc_12080.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/quizz/misc/lit/programs/simple/pages_new.html +http://library.cuhk.edu.hk/search*chi/aChen,+Hui-fen./achen+hui+fen/31,-1,0,E/frameset&F=achen+hung&4,,0 +http://www.vedomosti.spb.ru/2000/arts/spbved-82-art-2.html +http://www.vedomosti.spb.ru/2000/arts/spbved-82-art-21.html +http://www.vedomosti.spb.ru/2000/arts/spbved-82-art-45.html +http://caller-times.com/1999/june/26/today/national/2447.html +http://cafe5.daum.net/Cafe-bin/Bbs.cgi/vision20pds/lst/qqeq/1/zka/B2-kB2Np +http://www.crutchfield.com/S-q8jdM6hvouc/sales.html +http://www.crutchfield.com/S-q8jdM6hvouc/cgi-bin/Catalog.asp?sid=S-q8jdM6hvouc +http://www.crutchfield.com/S-q8jdM6hvouc/copyright.html +http://deliveryc.aftonbladet.se/puls/stockholmsguiden/presentation/0,1714,2000023149,00.html +http://deliveryc.aftonbladet.se/puls/stockholmsguiden/presentation/0,1714,2000023162,00.html +http://deliveryc.aftonbladet.se/puls/stockholmsguiden/presentation/0,1714,2000023220,00.html +http://www.tnonline.com/archives/news/2000weeklies/09.20/pocono/pocono/police.html +http://retailer.gocollect.com/do/session/1912688/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/sports/index.asp +http://ftp.fas.org/irp/world/iraq/hadi/ +http://rusf.ru/kb/stories/kogda_chapaev_ne_utonul/text.htm +http://ring.yamanashi.ac.jp/pub/FreeBSD-PC98/dists/4.1-RELEASE/packages/chinese/?M=A +http://www3.buch-per-sms.de/anmeldung0.jsp$ID=To7737mC4935289641883087At0.9095524774481786 +http://www3.buch-per-sms.de/impressum.jsp$ID=To7737mC4935289641883087At0.9104482951702283 +http://ftp.uni-bremen.de/pub/linux/dist/suse/6.4/i386.de/suse/contents/ +http://ftp.uni-bremen.de/pub/linux/dist/suse/6.4/i386.de/suse/pay3/ +http://ftp.uni-bremen.de/pub/linux/dist/suse/6.4/i386.de/suse/xdev2/ +http://www.mlbworldseries.com/u/baseball/mlb/players/moreplayer_7649.htm +http://www.rismedia.com/consumer/27/5192/ +http://www.rismedia.com/consumer/27/18760/ +http://library.cuhk.edu.hk/search*chi/aZhang,+Wei-Yuan./azhang+wei+yuan/-5,-1,0,B/browse +http://itcareers.careercast.com/texis/it/itjs/+XwwBmeSFy86xwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew8awn5otDanDtoDnnGaxdo5na5BwBnazdxanLpnGonDqnamnVncdpaBnwMahoGMiwGna31wcohoqwBodDaMFqpl0bP0RRe2PftgQE2yDzmesxwwwpBmeAFy86Kwww5rmepdwwwBrmeZpwww/morelike.html +http://itcareers.careercast.com/texis/it/itjs/+zwwBmerEy86e+xwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew8awn5otDanDtoDnnGaxdo5na5BwBnazdxanLpnGonDqnamnVncdpaBnwMahoGMiwGna31wcohoqwBodDaMFqpl0bP0RRe2PftgQE2yDzmesxwwwpBmeAFy86Kwww5rmeADwwwBrmeZpwww/jobpage.html +http://itcareers.careercast.com/texis/it/itjs/++wwBmex8286xwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew8awn5otDanDtoDnnGaxdo5na5BwBnazdxanLpnGonDqnamnVncdpaBnwMahoGMiwGna31wcohoqwBodDaMFqpl0bP0RRe2PftgQE2yDzmesxwwwpBmeAFy86Kwww5rm6mwwBrmeZpwww/jobpage.html +http://archive.soccerage.com/s/de/09/b2445.html +http://archive.soccerage.com/s/de/09/b2408.html +http://archive.soccerage.com/s/de/09/b2272.html +http://archive.soccerage.com/s/de/09/b2256.html +http://archive.soccerage.com/s/de/09/b2249.html +http://archive.soccerage.com/s/de/09/b2245.html +http://archive.soccerage.com/s/de/09/b2246.html +http://archive.soccerage.com/s/de/09/b2237.html +http://archive.soccerage.com/s/de/09/b2207.html +http://genforum.genealogy.com/cgi-genforum/forums/wickham.cgi?296 +http://ftpsearch.belnet.be/packages/CPAN/authors/id/N/NE/NEDKONZ/?S=A +http://www.cheatscape.com/amiga/a/game53cindex_1.htm +http://www.best.com/~radko/lounge/messages/3572.html +http://www.best.com/~radko/lounge/messages/3542.html +http://www.best.com/~radko/lounge/messages/3563.html +http://www.best.com/~radko/lounge/messages/3502.html +http://www.best.com/~radko/lounge/messages/3431.html +http://user.tninet.se/~lrg243i/leo2.htm +http://www.pocketbible.co.kr/new/hebrews/hebrews07/hebrews7-5.htm +http://www.pocketbible.co.kr/new/hebrews/hebrews07/hebrews7-10.htm +http://members.tripod.co.jp/sugart/?D=A +http://www.linux.com/networking/network/industry/growth/new/server/ +http://kdecvs.stud.fh-heilbronn.de/cvsweb/kdegames/kspaceduel/sprites/?hideattic=0&sortby=log +http://karate.list.ru/catalog/10621.html +http://www.digitaldrucke.de/(aktuell,arbeitsvermittlung,computer,hilfe,individualverkehr,kultur,mix,nuernberg,sense,software,verkehr)/_fort/html/themen/aktuell/verkehr.htm +http://www.digitaldrucke.de/(aktuell,arbeitsvermittlung,computer,hilfe,individualverkehr,kultur,mix,nuernberg,sense,software,verkehr)/_fort/html/themen/aktuell/fahrzeug/fahrzeug.htm +http://www.digitaldrucke.de/(aktuell,arbeitsvermittlung,computer,creaccess,hilfe,individualverkehr,kultur,mix,nuernberg,schnellübersicht,sense,software,verkehr,von)/_fort/html/themen/hilfe/getall.htm +http://polygraph.ircache.net:8181/http_-2www.infolane.com/http_-2www.neosoft.com/~nitemoon/technical/http_-2www2.davidweekleyhomes.com/advancedproj.html +http://wow-online.vhm.de/Regional/Sri_Lanka/Nachrichten.html +http://www.bell.bellnet.com/suchen/sport/rodeo.html +http://netway.pda.tucows.com/palm/adnload/67796_21902.html +http://netway.pda.tucows.com/palm/preview/48544.html +http://netway.pda.tucows.com/palm/adnload/139037_47478.html +http://netway.pda.tucows.com/palm/adnload/73256_21914.html +http://netway.pda.tucows.com/palm/adnload/71930_21910.html +http://netway.pda.tucows.com/palm/adnload/136499_47294.html +http://netway.pda.tucows.com/palm/adnload/77938_21926.html +http://wap.jamba.de/KNet/_KNet-g_v8j1-4Fd-13aaq/browse.de/node.0/cde7f2elw +http://www.oreilly.com/medical/autism/news/research.html +http://www.geocities.co.jp/HeartLand-Namiki/5523/kopen.html +http://br-online.de/wissenschaft/wimfs/tm/tm9611/tt9611ol.htm +http://retailer.gocollect.com/do/session/1912709/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/preorder.asp +http://rac.co.kr/www.avm.de/ +http://rac.co.kr/www.aztech.com.sg/ +http://rac.co.kr/www.simple.com.au/drivers.htm +http://www.egroups.com/messages/Wrestlings2ndComing/263 +http://mediate.magicbutton.net/do/session/625584/vsid/3342/tid/3342/cid/88020/mid/2008/rid/2313/chid/2648/url/http://www1.getmapping.com/index.cfm +http://ben.aspads.net/ex/c/643/874990125 +http://www.hri.org/docs//statedep/1998/98-05-26.std.html +http://member1.shangdu.net/home2/longing/byzs/036.htm +http://web.tiscalinet.it/informacitta/n2Maggio2000/n2Maggio2000/Pagine/P16.htm +http://www.eveclub.com/cgi-bin/eveclub.front/972959455723/Catalog/11000155 +http://www.eveclub.com/cgi-bin/eveclub.front/972959455723/Basket/View/1000038 +http://student.monterey.edu/sz/troxellphillipju/campus/ +http://readers.thevines.com/leaf/AA0000401329/45///&act=24-1-11&bref=1601 +http://caller-times.com/1999/september/30/today/business/750.html +http://www.online.kokusai.co.jp/Mmf_corner/V0043482/mmf_corner/mmf_corner/url +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=27,33,21,19,32 +http://jupiter.u-3mrs.fr/~msc41www/GRATXT/PD6483.HTM +http://webtools.familyeducation.com/whatworks/item/front/0,2551,1-9696-7765-539-51377,00.html +http://parallel.fh-bielefeld.de/ti/vorlesung/sp/jdk_doc/java/text/class-use/FieldPosition.html +http://cinemabilia.de/details/katnr/239509/ +http://ftp.sunet.se/pub/FreeBSD/FreeBSD-current/ports/games/xgolgo/pkg-comment +http://yp.gates96.com/13/2/50/12.html +http://yp.gates96.com/13/2/50/68.html +http://yp.gates96.com/13/2/52/56.html +http://yp.gates96.com/13/2/53/71.html +http://yp.gates96.com/13/2/54/13.html +http://yp.gates96.com/13/2/54/21.html +http://yp.gates96.com/13/2/54/43.html +http://yp.gates96.com/13/2/54/52.html +http://yp.gates96.com/13/2/54/94.html +http://yp.gates96.com/13/2/55/25.html +http://yp.gates96.com/13/2/55/57.html +http://yp.gates96.com/13/2/56/95.html +http://yp.gates96.com/13/2/57/24.html +http://yp.gates96.com/13/2/57/34.html +http://yp.gates96.com/13/2/57/35.html +http://yp.gates96.com/13/2/57/64.html +http://yp.gates96.com/13/2/58/92.html +http://yp.gates96.com/13/2/59/2.html +http://yp.gates96.com/13/2/59/31.html +http://www.outpersonals.com/cgi-bin/w3com/pws/out/RLhI7rcI1D4JxQFT7-3mEP5SJK8AVzq_FCHTmPD4oB4tzM54LVISOGr6gaW80TieiLj3vEEhfqMBuYuDKIQXk3pROAhdckz6dDnbPsi72aC9ZSsK2o3j3J8YlLpw-uOtcBIEsA4ZZATUNj1D6atp66I4 +http://www.dulux.co.uk/UKRETAIL:1938649915:DFinity.1QJiP4jRabmkmb +http://www.dulux.co.uk/UKRETAIL:1938649915:DFinity.1QJiP4jMomdoclfieh +http://www.egroups.com/messages/raite-dvd/1442 +http://www3.newstimes.com/archive2000/jun28/bzd.htm +http://yp.gates96.com/2/75/20/35.html +http://yp.gates96.com/2/75/20/42.html +http://yp.gates96.com/2/75/20/48.html +http://yp.gates96.com/2/75/21/28.html +http://yp.gates96.com/2/75/21/88.html +http://yp.gates96.com/2/75/21/91.html +http://yp.gates96.com/2/75/21/93.html +http://yp.gates96.com/2/75/21/96.html +http://yp.gates96.com/2/75/22/23.html +http://yp.gates96.com/2/75/23/50.html +http://yp.gates96.com/2/75/24/13.html +http://yp.gates96.com/2/75/24/47.html +http://yp.gates96.com/2/75/24/90.html +http://yp.gates96.com/2/75/25/33.html +http://yp.gates96.com/2/75/25/46.html +http://yp.gates96.com/2/75/25/84.html +http://yp.gates96.com/2/75/26/37.html +http://yp.gates96.com/2/75/26/40.html +http://yp.gates96.com/2/75/27/30.html +http://yp.gates96.com/2/75/27/66.html +http://yp.gates96.com/2/75/27/81.html +http://yp.gates96.com/2/75/28/34.html +http://yp.gates96.com/2/75/28/55.html +http://yp.gates96.com/2/75/29/12.html +http://yp.gates96.com/2/75/29/19.html +http://yp.gates96.com/2/75/29/45.html +http://yp.gates96.com/2/75/29/56.html +http://yp.gates96.com/2/75/29/86.html +http://yp.gates96.com/2/75/29/99.html +http://cn.egroups.com/message/agribusiness1/31 +http://biblio.cesga.es:81/search*gag/jLugo+(Provincia).+Mapas+topogrÃÂáficos.+[1890%3F]/jlugo+provincia+mapas+topograficos+1890/31,-1,0,B/browse +http://bbs.lineone.net/news/uknews/msg01030.html +http://bbs.lineone.net/news/uknews/msg01047.html +http://bbs.lineone.net/news/uknews/msg01026.html +http://bbs.lineone.net/news/uknews/msg00976.html +http://bbs.lineone.net/news/uknews/msg00960.html +http://bbs.lineone.net/news/uknews/msg00952.html +http://idl.tucows.com/winnt/adnload/1380_28802.html +http://retailer.gocollect.com/do/session/1912681/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/christmas/holiday_shoppe.asp +http://www1.zdnet.co.uk/software/fstore/A/9/000BA9.html +http://polygraph.ircache.net:8181/home/http_-2www.tauchbali.com/SERV.HTM +http://channel.nytimes.com/1998/05/01/technology/cybertimes/artsatlarge/ +http://ftp.sunet.se/pub/FreeBSD/ports/ports/japanese/linux-netscape47-communicator/?D=A +http://www9.hmv.co.uk:5555/do/session/1347757/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/hiddenframe.html +http://www9.hmv.co.uk:5555/do/session/1347757/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/logoframe.html +http://www-usa9.cricket.org/link_to_database/ARCHIVE/1999-2000/WI_IN_NZ/ARTICLES/ +http://www-usa9.cricket.org/link_to_database/ARCHIVE/1999-2000/WI_IN_NZ/SCORECARDS/ +http://a228.g.akamai.net/7/228/289/55d96730f1ea56/news.indiainfo.com/2000/08/13/floods.html +http://caller-times.com/1999/august/08/today/texas_me/4241.html +http://ftp.uni-bremen.de/pub/doc/news.answers/movies/winona-ryder-faq/part3 +http://www.globalsources.com/gsol/owa/website.gold/GP3/8801728414/HOME.HTM +http://eds.kse.or.kr/jaemoo/jipyo_e/k_grp/E01683.htm +http://eds.kse.or.kr/jaemoo/jipyo_e/i_grp/E01116.htm +http://eds.kse.or.kr/jaemoo/jipyo_e/i_grp/E01126.htm +http://eds.kse.or.kr/jaemoo/jipyo_e/d_grp/E00366.htm +http://eds.kse.or.kr/jaemoo/jipyo_e/h_grp/E00929.htm +http://www.jobvillage.com/channel/jobs/cleaning/pruner/g.1276.html +http://www.affiliate.hpstore.hp.co.uk/do/session/380817/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/assistance/entry.asp +http://gamingplace.zeelandnet.nl/poker_rating.html +http://no.egroups.com/message/DVD-Info/111 +http://www.relax.ch/static/it/lazurigo/mercatodellavoro/oben.html +http://internet.exit.de/mees-online/left_geld.html +http://www.redrocksports.com/sports/webSession/shopper/RR972959658-31049/store/dept-5/department/dept-5/item/footwear +http://www.redrocksports.com/sports/webSession/shopper/RR972959658-31049/store/dept-5/department/dept-5/item/52550 +http://www11.cplaza.ne.jp/babyweb/bbs/bdnmp01/no16/61N.html +http://www.daimi.au.dk/dIntProg/java/jdk1.2.2/docs/api/javax/swing/plaf/basic/BasicScrollBarUI.ArrowButtonListener.html +http://www.daimi.au.dk/dIntProg/java/jdk1.2.2/docs/api/javax/swing/plaf/basic/BasicScrollBarUI.ModelListener.html +http://www.angelfire.com/nc/Percosolation/POSDerisions.html +http://yp.gates96.com/3/4/40/80.html +http://yp.gates96.com/3/4/41/23.html +http://yp.gates96.com/3/4/41/24.html +http://yp.gates96.com/3/4/41/37.html +http://yp.gates96.com/3/4/41/90.html +http://yp.gates96.com/3/4/42/26.html +http://yp.gates96.com/3/4/42/71.html +http://yp.gates96.com/3/4/42/90.html +http://yp.gates96.com/3/4/44/44.html +http://yp.gates96.com/3/4/45/52.html +http://yp.gates96.com/3/4/45/75.html +http://yp.gates96.com/3/4/45/77.html +http://yp.gates96.com/3/4/46/0.html +http://yp.gates96.com/3/4/46/85.html +http://yp.gates96.com/3/4/47/19.html +http://yp.gates96.com/3/4/47/20.html +http://yp.gates96.com/3/4/47/23.html +http://yp.gates96.com/3/4/47/72.html +http://yp.gates96.com/3/4/48/4.html +http://yp.gates96.com/3/4/48/16.html +http://yp.gates96.com/3/4/48/45.html +http://yp.gates96.com/3/4/48/51.html +http://yp.gates96.com/3/4/49/16.html +http://ftpsearch.belnet.be/pub/mirror/sunsite.cnlab-switch.ch/mirror/harvest/contrib/Example-Customizations/?S=A +http://pub9.ezboard.com/fgaprforeignrelationdepartment.showAddTopicScreenFromWeb +http://pub9.ezboard.com/fgaprforeignrelationdepartment.showMessage?topicID=4.topic +http://www.asstr.org/nifty/gay/authoritarian/adonis-brotherhood/adonis-brotherhood-3 +http://www.brio.de/BRIO.catalog/39fe2f4c06d41844273fd472aa7806a9/UserTemplate/8 +http://itcareers.careercast.com/texis/it/itjs/+HwwBmeH_D86aqwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew6nxqdDdMoqax15oDn55a5BwhhawDwcO5o5aqd5Ban5BoMwBoDtaGo5Aa5nGVoqnaADdicnmtnaBddc5aMFqhTfR20DzmenxwwwpBmeWWD86exhwww5rmeWcwwwBrmeZpwww/jobpage.html +http://polygraph.ircache.net:8181/http_-2www.whowhere.com/http_-2www.updowntowner.org/julyjamm/frmain.htm +http://213.36.119.69/do/session/152987/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/spectacles/ +http://www.jobvillage.com/channel/jobs/health_care/physician/anesthesiologist/b.9467.g.1575.html +http://www.private-immobilien-boerse.de/friesland/verkauf/IIM-Teil/Startseite/Gemeinsam/Super-Zins-Konditionen/Gemeinsam/Inserieren/Gemeinsam/MarketingStrategie/inhalt.htm +http://se.egroups.com/message/yemdiscussion/38 +http://se.egroups.com/message/yemdiscussion/45 +http://home.bip.net/kerstin.hjelm/Stamtavla%20Z-kullen.html +http://mediate.magicbutton.net/do/session/625616/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-abou.html +http://members.tripod.lycos.co.kr/KWEN3607/?S=A +http://cpan.clix.pt/authors/id/B/BP/BPOWERS/String-StringLib-1.02.readme +http://www.gbnf.com/genealogy/bookout/html/d0001/I3283.HTM +http://m4.findmail.com/group/Opera2Developers +http://m4.findmail.com/group/acctworks +http://retailer.gocollect.com/do/session/1912690/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=1 +http://retailer.gocollect.com/do/session/1912690/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/postcards/index.asp +http://platsbanken.amv.se/kap/text/47/001023,170030,140912,11,1276051947.shtml +http://www.gamespot.com/features/dunesg/dune6a.html +http://tucows.iquest.net/winme/preview/138053.html +http://tucows.iquest.net/winme/preview/137529.html +http://tucows.iquest.net/winme/preview/138641.html +http://archive.soccerage.com/s/pt/09/03721.html +http://archive.soccerage.com/s/pt/09/07102.html +http://www10.nytimes.com/library/national/science/health/021500hth-women-diabetes.html +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.phy.bnl.gov/e949/e949_update.txt +http://www.mapion.co.jp/custom/AOL/admi/13/13105/otsuka/3chome/index-7.html +http://go18.163.com/_NTES/~starseeker/gin/saga/gin01/gin0100.htm +http://village.infoweb.ne.jp/~fvgg8450/t91.html +http://clickahouse.mp2.homes.com/content/articles/locks.html +http://findmail.com/messages/studentdoctor/354 +http://ldp.mirror.nettuno.it/Linux/LDP/LDP/lkmpg/node3.html +http://ldp.mirror.nettuno.it/Linux/LDP/LDP/lkmpg/node13.html +http://fi.egroups.com/group/sandycove +http://www.fogdog.com/cedroID/ssd3040183219992/boutique/nike/ +http://www.fogdog.com/cedroID/ssd3040183219992/boutique/harbinger/ +http://www.fogdog.com/cedroID/ssd3040183219992/customer_service/employment.html +http://www.genoma.de/shop/736a8b4b4c331e80f780899842a4b0b4/99/b +http://sjsulib1.sjsu.edu:81/search/tbraille+transcription+project+of+santa+clara+county+inc/-5,-1,1,B/frameset&tbook+reviews+in+the+humanities&1,1, +http://students.washington.edu/emgall/eng481/final/ +http://www.vc-graz.ac.at/ilct/ffe_349_99.htm +http://www.vc-graz.ac.at/ilct/ffe_372_00.htm +http://www.vc-graz.ac.at/ilct/ffe_375_00.htm +http://www.escribe.com/computing/virtcom/m452.html +http://members.tripod.com/~TreasureIsland/welcom/e.htm +http://augustachronicle.com/stories/022699/obi_038-5494.001.shtml +http://augustachronicle.com/stories/022699/obi_038-5477.001.shtml +http://ring.edogawa-u.ac.jp/archives/X/opengroup/R6.5.1/xc/lib/Imakefile +http://www.elop.de/d0-1015-2044-3001-top.html +http://www.ibiblio.org/pub/languages/java/blackdown.org/JDK-1.1.7/i386/glibc/v1a/?S=D +http://www.linux.com/networking/network/enterprise/integration/management/Linux/ +http://www.mapion.co.jp/custom/AOL/admi/13/13221/matsuyama/2chome/index-7.html +http://www.mapion.co.jp/custom/AOL/admi/13/13221/matsuyama/2chome/index-12.html +http://ftp.sunet.se/pub/FreeBSD/ports/ports/japanese/tcl76/Makefile +http://ftp.lip6.fr/pub2/sgml-tools/website/HOWTO/Consultants-HOWTO/t19977.html +http://www.irishnews.com/archive2000/06072000/sportuk1.html +http://allmacintosh.ii.net/adnload/71893.html +http://allmacintosh.ii.net/adnload/70339.html +http://www.museumshops.co.uk/Bonnefoit-Alain/Bonnefoit-Alain-Die-Schoene-mit-dem-Pelz-3000062.html +http://www.timesoc.com/editions/orange/20001030/t000103758.html +http://www.musiciansfriend.com/ex/ds/bv/001030182803064208037039434033 +http://www.beneteau-owners.com/library.nsf/Library+By+System!OpenView&Start=41.4&Count=45&Expand=49 +http://www.musiciansfriend.com/ex/search/guitar/001030182759064208037059215342?FIND=BABX&q=c +http://www.musiciansfriend.com/ex/search/guitar/001030182759064208037059215342?FIND=ASAX&q=c +http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/showNextUnseen/fol/100001/2467632 +http://tucows.wish.net/winme/adnload/137243_28721.html +http://yp.gates96.com/3/71/10/71.html +http://yp.gates96.com/3/71/11/12.html +http://yp.gates96.com/3/71/11/27.html +http://yp.gates96.com/3/71/11/34.html +http://yp.gates96.com/3/71/11/40.html +http://yp.gates96.com/3/71/11/62.html +http://yp.gates96.com/3/71/11/78.html +http://yp.gates96.com/3/71/12/70.html +http://yp.gates96.com/3/71/13/34.html +http://yp.gates96.com/3/71/13/38.html +http://yp.gates96.com/3/71/13/82.html +http://yp.gates96.com/3/71/14/94.html +http://yp.gates96.com/3/71/15/0.html +http://yp.gates96.com/3/71/15/88.html +http://yp.gates96.com/3/71/17/28.html +http://yp.gates96.com/3/71/17/85.html +http://yp.gates96.com/3/71/18/37.html +http://yp.gates96.com/3/71/18/69.html +http://yp.gates96.com/3/71/19/55.html +http://www.kodak.ca/US/en/corp/jobs/samplingMechanicalProds.shtml +http://ring.crl.go.jp/archives/lang/perl/CPAN/authors/id/G/GR/GRICHTER/HTML-Embperl-1.3b4.readme +http://www7.freeweb.ne.jp/photo/lystra/a/n_aikawa.html +http://www.imagesofengland.org.uk/31/73/317339.htm +http://webraft.its.unimelb.edu.au/110080/students/ojb/pub/?D=A +http://pub.chinaccm.com/13/news/200010/31/155751.asp +http://pub.chinaccm.com/13/news/200010/21/162140.asp +http://go18.163.com/_NTES/~chen0580/y25.htm +http://pub17.ezboard.com/fcometalkfreetalk.showMessage?topicID=15.topic +http://pub17.ezboard.com/fcometalkfreetalk.showMessage?topicID=6.topic +http://mediate.magicbutton.net/do/session/625593/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-tips.html +http://213.36.119.69/do/session/152982/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/wap/lancement.html +http://wap.jamba.de/KNet/_KNet-Drs8j1-yEd-1395x/showInfo-presse.de/node.0/cde7f1uou +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=choramingar&l=pt +http://www.amcity.com/philadelphia/stories/1998/11/09/story5.html?t=email_story +http://www.mic.hr/PGMARKET:553666 +http://cn.egroups.com/messages/KristinChenoweth/2280 +http://quest7.proteome.com/databases/YPD/PombePD/SPAC343.03.html +http://www.engines.org.uk/white/fld19/ +http://www.engines.org.uk/white/fld27/ +http://se.egroups.com/subscribe/plusgothswap +http://www.headlight.com/invoice_process/1,1074,adpa-4049-2423-69-718,00.html +http://www.findarticles.com/cf_0/m4PRN/1999_Nov_3/57153314/p1/article.jhtml +http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/folderFrame/100001/0/alpha/2480022 +http://archive.soccerage.com/s/it/06/10903.html +http://innopac.lib.tsinghua.edu.cn/search*chi/dProduction+engineering/dproduction+engineering/-5,-1,0,B/browse +http://www.consource.com/communities/profile_categories/1759/1510 +http://column.daum.net/Column-bin/Bbs.cgi/thinkaboutrbs/new/zka/B2-kB2Np +http://wwws.br-online.de/geld/boerse/960301/0730.html +http://www.2pl.com/asp/tools/fili1.asp?sp=ro&fi=pppp0003zi +http://www.proviser.co.uk/regional/towns/alford/property_prices/compare_current_prices/terraced.html +http://cometweb01.comet.co.uk/do!session=131998&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG3XqLbdlLov4LfpmLiXvL-Zd5jbkLYozKvot0cZd5ockLYozKvsm0utt0cZX5qkXLjbzKMfaLblpLbom0bos0bom04M4Lbom0miXLvboLp1 +http://cometweb01.comet.co.uk/do!session=131998&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG3XqLbdlLov4LfpmLiXvL-Zd5jbkLYozKvot0cZd5ockLYozKvsm0uqo0cZX5qkXLjbzKG3pLibo0miX5mqlLmpbKomb0osb0oml1odXLkfpLbopL +http://www.geocities.co.jp/Milano/8578/profile.html +http://ftp.dti.ad.jp/pub/XFree86/3.3.3/binaries/NetBSD-1.2/Servers/?N=D +http://ftp.dti.ad.jp/pub/XFree86/3.3.3/binaries/NetBSD-1.2/Servers/?D=A +http://www.best.com/~radko/lounge/messages/3742.html +http://www.best.com/~radko/lounge/messages/3711.html +http://www.best.com/~radko/lounge/messages/3619.html +http://www.linux.com/networking/network/help/email/business/RuleSpace/ +http://www.financialexpress.com/fe/daily/20000918/fco17026.html +http://209.67.27.70/comics/dilbert/scott/dawn/pg19.html +http://209.67.27.70/comics/dilbert/scott/dawn/pg22.html +http://flamingo.promote.ru/href.pl?fct_051 +http://pda.saa.net/palm/adnload/34404_22152.html +http://www.outpersonals.com/cgi-bin/w3com/pws/out/q6tIzhLNlKeaaMXYVAPJiOq7V33Ul08VcQoPAomjWMQzOxA0cR6_kRLx42D4nA_uumPVc2DRZtv6CVpWQCyNUgVZQ2P9F7bqqvcf_5WqCdUM7UIRKBdjb9lTbrCrrl5_jZ6cQsstJDqry3XrFI0toILqSCSm66j2 +http://www.home.ch/~spaw9012/ps11/ps11_003.htm +http://help.sap.com/saphelp_45b/helpdata/de/1c/e464b20437d1118b3f0060b03ca329/frameset.htm +http://abc.ru/cgi-bin/get_firminfo.pl?firm=comsys +http://www.pressa.spb.ru/newspapers/nevrem/arts/nevrem-1749-art-28.html +http://www.pressa.spb.ru/newspapers/nevrem/arts/nevrem-1749-art-32.html +http://admin.afiliando.com/do/session/189435/vsid/1507/tid/1507/cid/23455/mid/1025/rid/1168/chid/1205/parser/yes/imref/eqqLmwlGltt5tkpHrYjLXofLklkKZljLkju5lZa5l0/url/http://www.submarino.com.mx/pesquisa/jutherC.asp?id_categoria=57&id_tipo=C +http://admin.afiliando.com/do/session/189435/vsid/1507/tid/1507/cid/23455/mid/1025/rid/1168/chid/1205/parser/yes/imref/eqqLmwlGltt5tkpHrYjLXofLklkKZljLkju5lZa5l0/url/http://www.submarino.com.mx/extra/talk_to_sub.asp +http://cometweb01.comet.co.uk/do!session=131998&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG3XqLbdlLov4LfpmLiXvL-Zd5jbkLYozKvot0cZd5ockLYozKvsn0mvm0cZX5qkXLjbzKGelLkbpL +http://yp.gates96.com/3/39/30/1.html +http://yp.gates96.com/3/39/30/53.html +http://yp.gates96.com/3/39/31/22.html +http://yp.gates96.com/3/39/32/0.html +http://yp.gates96.com/3/39/32/39.html +http://yp.gates96.com/3/39/32/41.html +http://yp.gates96.com/3/39/32/45.html +http://yp.gates96.com/3/39/32/97.html +http://yp.gates96.com/3/39/34/39.html +http://yp.gates96.com/3/39/34/50.html +http://yp.gates96.com/3/39/34/68.html +http://yp.gates96.com/3/39/34/72.html +http://yp.gates96.com/3/39/35/14.html +http://yp.gates96.com/3/39/35/84.html +http://yp.gates96.com/3/39/36/3.html +http://yp.gates96.com/3/39/36/19.html +http://yp.gates96.com/3/39/36/20.html +http://yp.gates96.com/3/39/36/84.html +http://yp.gates96.com/3/39/36/88.html +http://yp.gates96.com/3/39/37/37.html +http://yp.gates96.com/3/39/38/60.html +http://yp.gates96.com/3/39/38/63.html +http://yp.gates96.com/3/39/39/52.html +http://yp.gates96.com/3/39/39/56.html +http://yp.gates96.com/3/39/39/58.html +http://yp.gates96.com/3/39/39/63.html +http://yp.gates96.com/13/9/80/14.html +http://yp.gates96.com/13/9/80/92.html +http://yp.gates96.com/13/9/81/23.html +http://yp.gates96.com/13/9/81/47.html +http://yp.gates96.com/13/9/82/45.html +http://yp.gates96.com/13/9/82/59.html +http://yp.gates96.com/13/9/82/65.html +http://yp.gates96.com/13/9/82/71.html +http://yp.gates96.com/13/9/82/77.html +http://yp.gates96.com/13/9/83/86.html +http://yp.gates96.com/13/9/83/88.html +http://yp.gates96.com/13/9/84/4.html +http://yp.gates96.com/13/9/84/28.html +http://yp.gates96.com/13/9/84/77.html +http://yp.gates96.com/13/9/85/34.html +http://yp.gates96.com/13/9/85/59.html +http://yp.gates96.com/13/9/86/22.html +http://yp.gates96.com/13/9/86/28.html +http://yp.gates96.com/13/9/86/30.html +http://yp.gates96.com/13/9/86/37.html +http://yp.gates96.com/13/9/86/85.html +http://yp.gates96.com/13/9/87/1.html +http://yp.gates96.com/13/9/87/2.html +http://yp.gates96.com/13/9/88/58.html +http://yp.gates96.com/13/9/89/17.html +http://yp.gates96.com/13/9/89/49.html +http://yp.gates96.com/13/9/89/51.html +http://yp.gates96.com/13/9/89/64.html +http://yp.gates96.com/13/9/89/69.html +http://yp.gates96.com/13/9/89/79.html +http://www.diogenes.ch/4DACTION/web_rd_aut_frlist_az/ID=483337&chr=D +http://ngi.tucows.com/win2k/adnload/37473_28857.html +http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=1,4,21,7,17 +http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=2,4,21,7,17 +http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=15,4,21,7,17 +http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=16,4,21,7,17 +http://www.susi.de/cgi-bin/order/segelzentrum-kagerer/c134-5021905270003,de +http://www.egroups.com/messages/iraq-l/9973 +http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=29,24,30,11 +http://www.etoys.com/prod/book/51604361 +http://link.fastpartner.com/do/session/600358/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/itjobbank.php +http://link.fastpartner.com/do/session/600358/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/shopnett.php +http://mirror.nucba.ac.jp/mirror/FreeBSD/branches/2.2-stable/ports/devel/mips64orion-rtems-objc/?S=A +http://www-uk5.cricket.org/link_to_database/NATIONAL/ENG/FC_TEAMS/SOMERSET/STATS/CAREER/SOMERSET_CAREER_J.html +http://www.linux.com/networking/network/performance/install/distro/industry/ +http://www.linux.com/networking/network/performance/install/distro/tools/ +http://www.linux.com/networking/network/performance/install/distro/enterprise/ +http://mx.php.net/manual/de/language.basic-syntax.php +http://mx.php.net/manual/fr/language.basic-syntax.php +http://moviestore.zap2it.com/browse/MOVIES/SCRIPT/s.UxBwM3db +http://www.armouries.org.uk/bjarni/introduction.htm +http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/authors/id/C/CT/CTWETEN/?D=A +http://atlanta.webmd.com/related_results/1/25/article/1738.50204 +http://www.ccnet.com/tzimmer/?M=A +http://go2.163.com/~xinhua/ +http://www.ualberta.ca/FTP/OpenBSD/src/regress/lib/libc/_setjmp/CVS/Root +http://www.dqt.com.cn/wymb/military/jinyong/金庸全集.htm +http://www.hole.kommune.no/hole/journweb.nsf/7e180336094ef23a412568cd004a5093/2fd09f96f20814cac12568e300443d50!Navigate&To=Next +http://classifieds.alberta.com/js/mi/c16000/b16000/n15/858640.html +http://classifieds.alberta.com/js/mi/c16000/b16000/n15/861013.html +http://homepages.go.com/homepages/b/n/g/bngholo/ +http://www.aelita.net/products/news/library/support/Reg/Subscribe/library/default.htm +http://www.chaos.dk/sexriddle/j/a/b/s/e/ +http://www.chaos.dk/sexriddle/j/a/b/s/t/ +http://213.36.119.69/do/session/152985/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/contact/info-publicite.html +http://www.indian-express.com/fe/daily/19990807/corporate.html +http://web.cln.com/archives/atlanta/newsstand/atl100795/1316.htm +http://web.cln.com/archives/atlanta/newsstand/atl100795/1317.htm +http://plaza.gaiax.com/www/plaza/k/n/kenta/friends.html +http://polygraph.ircache.net:8181/docs/eudora/http_-2www.kentuckylake.com/rates/http_-2www.hubbell-wiring.com/NEMA/admin/additional.html +http://gd.cnread.net/cnread1/wxxs/d/dongfangying/pljc/015.htm +http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Startseite/Gemeinsam/versicherungen/gebaeude/Gemeinsam/versicherungen/unfall/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/lebensversicherung/Gemeinsam/versicherungen/gebaeude/anforderungsformular.htm +http://www.linux.com/networking/network/help/free/red_hat/competition/ +http://www.linux.com/networking/network/help/free/red_hat/development/ +http://www.linux.com/networking/network/help/free/red_hat/SuSE/ +http://search.chollian.net/d/%b1%e2%be%f7,%c8%b8%bb%e7/%b0%e1%c8%a5/%c5%e4%c5%bb%bf%fe%b5%f9%bc%ad%ba%f1%bd%ba/16.html +http://no.egroups.com/message/plowshares/840 +http://www.pressa.spb.ru/newspapers/nevrem/arts/nevrem-1872-art-13.html +http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/erreichenPartner/Startseite/Gemeinsam/versicherungen/lebensversicherung/Top-Darlehens-Konditionen/Gemeinsam/versicherungen/unfall/anforderungsformular.htm +http://www.affiliate.hpstore.hp.co.uk/do/session/380819/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/main/respect/ +http://www-rn.informatik.uni-bremen.de/home/ftp/pub/linux/redhat/updates/6.2EE/i586/ +http://archive.soccerage.com/s/es/09/12718.html +http://www.intel.es/kr/hangul/pressroom/archive/releases/dp990218.htm +http://www.intel.es/kr/hangul/pressroom/archive/releases/dp990105.htm +http://sunsite.informatik.rwth-aachen.de/cgi-bin/ftp/ftpshow/pub/Linux/sunsite.unc.edu/distributions/caldera/eServer/updates/2.3/021/RPMS/ +http://library.bangor.ac.uk/search/aMatis,+James+H/amatis+james+h/-5,-1,0,B/browse +http://polygraph.ircache.net:8181/http_-2www.microsoft.com/frontpage/html/http_-2www.sharkyextreme.com/hardware/hercules_tnt/ +http://ring.nihon-u.ac.jp/archives/pack/win95/net/fee/?N=D +http://dbc.copystar.com.tw/bcbchat/199804/msg03730.htm +http://dbc.copystar.com.tw/bcbchat/199804/msg03761.htm +http://dbc.copystar.com.tw/bcbchat/199804/msg03787.htm +http://www.private-immobilien-boerse.de/nordrhein-Westfalen/grevenbroich/Verkauf/Gemeinsam/Super-Zins-Konditionen/Exklusiv-IB/Startseite/IIM-Teil/Startseite/Gemeinsam/IIMMitglieder.htm +http://www.private-immobilien-boerse.de/nordrhein-Westfalen/grevenbroich/Verkauf/Gemeinsam/Super-Zins-Konditionen/Exklusiv-IB/Startseite/IIM-Teil/Startseite/Gemeinsam/vertriebspartner.htm +http://pd.shiseido.co.jp/s9604tub/html_00/win00051.htm +http://solaris.license.virginia.edu/os_product_patches/patches/5.7/107094-04/SUNWdtbas/pkgmap +http://www.eveclub.com/cgi-bin/eveclub.front/972959470432/Catalog/11000034 +http://www.sportinggreen.com/news/20001007/fbo/fbc/aar/001007.0607.html +http://www-x500-1.uni-giessen.de:8890/Lcn%3dBelloch%20Belloch%5c,%20Juana%20Maria,ou%3dFacultad%20de%20Medicina%20y%20Odontologia,o%3dUniversidad%20de%20Valencia,c%3dES +http://retailer.gocollect.com/do/session/1912723/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/limited_editions.asp +http://www.jufo.com/netcenter/chemistry/item/000904/16888.htm +http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/d29/b14,8,1f,1d,1d,,19,,1f,19, +http://www.2pl.com/b/ru/to/1/24/16/v2/1241600107-8.htm +http://ring.htcn.ne.jp/pub/text/CTAN/fonts/metrics/polish/plpsfont/?D=A +http://config.tucows.com/winme/adnload/26398_28890.html +http://ocean.ntou.edu.tw/search*chi/aRadojcic,+Riko,+jt.+auth./aradojcic+riko/-5,-1,0,B/frameset&F=aradomsky+nellie+a&1,1 +http://www.intellicast.com/Sail/World/UnitedStates/Northwest/Montana/Beaverhead/LocalWinds/d1_09/ +http://www.bild.de/service/archiv/2000/mar/31/sport/coulthard/coulthard.html +http://ustlib.ust.hk/search*chi/a%7B215a36%7D%7B213246%7D%7B215e42%7D+1926/a{215a36}{213246}{215e42}+1926/-5,-1,0,B/frameset&F=a{215a36}{213230}{214e70}&1,1 +http://mediate.magicbutton.net/do/session/625620/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-top50.html +http://mediate.magicbutton.net/do/session/625620/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-corp.html +http://www.amateurplatinum.com/mouthlicking/eunuchhershey-highway/bad-girlsubmission/petitebeauties/actionno-boundaries/fellatiogoing-down-on/give-headcock-suckers.html +http://www.brd.net/brd-cgi/brd_dkameras/filmscanner_fotodrucker/FZ00F0EF/beurteilung/ci=972751646.htm +http://www.niwl.se/WAIS/31607/31607073.htm +http://www.magicvillage.de/Login/magicvillage/magiclife/Lucullus/%2328706045/Reply +http://polygraph.ircache.net:8181/consumer/rel_meet_main.html +http://sunsite.informatik.rwth-aachen.de/cgi-bin/ftp/ftpshow/pub/Linux/sunsite.unc.edu/distributions/debian/dists/potato/non-free/binary-i386/x11/ +http://www.great-cyber-mall.com/SelectCompany.asp?CityID=67&CatID=5 +http://www.great-cyber-mall.com/SelectCompany.asp?CityID=67&CatID=50 +http://rainforest.parentsplace.com/dialog/get/bradley2/39/1/1.html?embed=2 +http://www.users.yun.co.jp/cgi-bin/moriq/pigeon/pigeon.cgi/DataSet.after_post?c=e +http://www.chaos.dk/sexriddle/n/f/p/x/x/ +http://www.amcity.com/dayton/stories/2000/03/20/smallb1.html?t=email_story +http://www.linux.com/networking/network/industry/web_server/windows_nt/Red_Hat/ +http://www.du-et.net/cgi/mail.cgi?NickName=naiki +http://gameboyz.com/g/demos_p1_c41_lV_w2.html +http://intelinfo.subportal.com/sn/Games/Strategy_Games/9289.html +http://home.kimo.com.tw/maso-kid/index2.html +http://citeseer.nj.nec.com/nrelated/1377121/289677 +http://citeseer.nj.nec.com/nrelated/0/289677 +http://ccar.ust.hk/~dataop/rs_ocean_cd/WVS/wvsplus/wvs003m/bat/q/h/lf/ +http://home.baoding.cn.net/~tjhlove/dzrwy/l11.htm +http://home.baoding.cn.net/~tjhlove/dzrwy/l23.htm +http://208.178.109.85/msgshow.cfm/msgboard=129014524422386&msg=3558983275052&page=1&idDispSub=-1 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=4,9,33,27,35 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=29,9,33,27,35 +http://config.tucows.com/win2k/adnload/76944_30007.html +http://www1.zdnet.com/zdnn/stories/news/0,4586,1021147,00.html +http://www.fogdog.com/cedroID/ssd3040183236187/nav/stores/snowboarding/ +http://www.fogdog.com/cedroID/ssd3040183236187/nav/stores/institutional/ +http://debian.linux.org.tw/debian/dists/sid/main/disks-powerpc/current/source/?M=A +http://satftp.soest.hawaii.edu/dlr/slides/ql21176.html +http://www.linux.com/networking/network/industry/new/help/internet/ +http://www.linux.com/networking/network/industry/new/help/growth/ +http://flint.freethemes.com/skins/winamp/preview/46994.html +http://flint.freethemes.com/skins/winamp/preview/24628.html +http://flint.freethemes.com/skins/winamp/preview/25113.html +http://flint.freethemes.com/skins/winamp/preview/24645.html +http://flint.freethemes.com/skins/winamp/preview/25319.html +http://flint.freethemes.com/skins/winamp/preview/25017.html +http://flint.freethemes.com/skins/winamp/preview/26154.html +http://flint.freethemes.com/skins/winamp/preview/24669.html +http://flint.freethemes.com/skins/winamp/preview/24674.html +http://flint.freethemes.com/skins/winamp/preview/69522.html +http://flint.freethemes.com/skins/winamp/preview/58805.html +http://flint.freethemes.com/skins/winamp/preview/71909.html +http://flint.freethemes.com/skins/winamp/preview/24389.html +http://flint.freethemes.com/skins/winamp/preview/25052.html +http://flint.freethemes.com/skins/winamp/preview/77185.html +http://flint.freethemes.com/skins/winamp/preview/56733.html +http://flint.freethemes.com/skins/winamp/preview/24736.html +http://flint.freethemes.com/skins/winamp/preview/24408.html +http://flint.freethemes.com/skins/winamp/preview/24744.html +http://flint.freethemes.com/skins/winamp/preview/24424.html +http://flint.freethemes.com/skins/winamp/preview/25075.html +http://flint.freethemes.com/skins/winamp/preview/71807.html +http://nomade.fr/cat/informatique_tele/informatique/progiciels_logiciel/utilitaires/communication +http://pub9.ezboard.com/umetalman5566.showPublicProfile?language=EN +http://archiv.leo.org/pub/comp/usenet/comp.binaries.atari.st/texinfo31/texif31b.zoo/ +http://www.maas.ccr.it/cgi-win/hiweb.exe/a18/d13/b261,4,d,,be,d, +http://citeseer.nj.nec.com/cidcontext/608466 +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/asiasanahaku/strategia/kansainv%E4listyminen/ulkomaankauppa/kansainv%E4linen+kauppa/ +http://cms.letsmusic.com/directory/search/albuminfo/1,1125,af0127818000000,00.asp +http://www.musiciansfriend.com/ex/ds/other/001030182805064208037054818832 +http://www.musiciansfriend.com/ex/search/other/001030182805064208037054818832?FIND=IBAX&q=c +http://www.mapion.co.jp/custom/tv/admi/13/13106/kuramae/3chome/19/ +http://dblab.comeng.chungnam.ac.kr/~dolphin//db/journals/ac/ac11.html +http://archive.soccerage.com/s/de/09/c4816.html +http://archive.soccerage.com/s/de/09/c4698.html +http://archive.soccerage.com/s/de/09/c4664.html +http://archive.soccerage.com/s/de/09/c4463.html +http://archive.soccerage.com/s/de/09/c4423.html +http://archive.soccerage.com/s/de/09/c4422.html +http://workingfamilies.digitalcity.com/tampabay/penpals/browse.dci?cat=teens&sort=f +http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/Inserieren/Startseite/Gemeinsam/immolink/Top-Darlehens-Konditionen/Gemeinsam/versicherungen/unfall/anforderungsformular.htm +http://www.samba.org/cgi-bin/cvsweb/gnokii/xgnokii/docs/help/en_US/windows/main/?sortby=log +http://www.accesslasvegas.com/shared/health/adam/ency/article/002669sym.html +http://www.egroups.com/message/gaywrestle/33 +http://lfs.cyf-kr.edu.pl:8888/3Lcn%3dDirectory%20Manager,%20o%3dSPRITEL,%20c%3dES +http://www.acfas.ca/congres/congres66/S10.htm +http://hansard.www.act.gov.au/2000/week02/423.htm +http://207.25.71.142/cycling/2000/tour_de_france/stages/4/ +http://207.25.71.142/cycling/2000/tour_de_france/news/2000/07/20/pantani_reflects +http://207.25.71.142/cycling/2000/tour_de_france/news/2000/07/19/driver_charged/ +http://207.25.71.142/POLL/results/1142011.html +http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=6,14,27,22 +http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=29,14,27,22 +http://www.affiliate.hpstore.hp.co.uk/do/session/380816/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/ +http://www.affiliate.hpstore.hp.co.uk/do/session/380816/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/products/entry.asp +http://ads.carltononline.com/accipiter/adclick/site=purejamba/area=jamba.home_page/AAMSZ=POPUP/ACC_RANDOM=972959547609 +http://retailer.gocollect.com/do/session/1912714/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/contact.asp +http://208.178.101.41/news/1998/12/10newsd.html +http://208.178.101.41/news/1998/03/05news.html +http://208.178.101.41/news/1998/03/03news.html +http://208.178.101.41/news/1998/01/09news.html +http://hff.shunde.net/mobile/radio2000.163.net/radio2000.163.html +http://hff.shunde.net/mobile/www.tohome.net/www.tohome.html +http://www.egroups.com/login.cgi?login_target=%2Fmessages%2FShayrs%2F31 +http://moviestore.zap2it.com/browse/MOVIES/BANK/s.bsk4qCBs +http://moviestore.zap2it.com/browse/MOVIES/STATION/s.bsk4qCBs +http://moviestore.zap2it.com/browse/MOVIES/VIDEO/s.bsk4qCBs +http://ftp.fi.debian.org/debian/dists/unstable/contrib/source/x11/?N=D +http://link.fastpartner.com/do/session/600364/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/company/jobs.htm +http://pub16.ezboard.com/uprieni.showPublicProfile +http://ftp.du.se/disk4/FreeBSD/branches/4.0-stable/ports/x11-servers/XFree86-4-FontServer/ +http://ftp.du.se/disk4/FreeBSD/branches/4.0-stable/ports/x11-servers/XttXF98srv-NKVNEC/ +http://www.generation-formation.fr/services/adrutils/GUIDES/CCI.HTM---o21zAo0UaWo0Ol9A074fo65iyfmKlze8SUeecTAseLvI5ehw7se7NeCfeZJPAPfVbNyqgBecVktePbBxehwwlezc9fAb0vyApuRtAhGqGdisSLdspt6dsSAtdsNhJdspt6dsrvrdjlhkfbu.htm +http://www.generation-formation.fr/services/adrutils/GUIDES/DRIRE.HTM---o21zAo0UaWo0Ol9A074fo65iyfmKlze8SUeecTAseLvI5ehw7se7NeCfeZJPAPfVbNyqgBecVktePbBxehwwlezc9fAb0vyApuRudNnJpo1XCjdRsR3djaPfdNjfcdRsR3djakUApvGdhcmdfbv.htm +http://198.103.152.100/search*frc/aMayer,+Anita/amayer+anita/-5,-1,0,B/frameset&F=amaybank+j+e&1,1 +http://198.103.152.100/search*frc/aMayer,+Anita/amayer+anita/-5,-1,0,B/2exact&F=amaycunich+ann&1,3 +http://kobenhavn.icepage.se/hilfe/XFree86/3.9.18/DECtga2.html +http://itcareers.careercast.com/texis/it/itjs/+YwwBmeJf5C6wwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewyhw1Bdmn5AanLnq1BoVnawmMoDo5BGwBoVnazdxamnpwGBMnDBaGnpdGB5a5BdGnaqddGmoDwBnanMwoca5Aocc5aMFqoEuRZy0IQDzmeJqwwwpBmeBFZ86mwww5rmehpwwwBrmeZpwww/morelike.html +http://itcareers.careercast.com/texis/it/itjs/+cwwBmetKD86eMmwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewyhw1Bdmn5AanLnq1BoVnawmMoDo5BGwBoVnazdxamnpwGBMnDBaGnpdGB5a5BdGnaqddGmoDwBnanMwoca5Aocc5aMFqoEuRZy0IQDzmeJqwwwpBmeBFZ86mwww5rmeODwwwBrmeZpwww/morelike.html +http://bbs.syu.ac.kr/NetBBS/Bbs.dll/scbbs008/rcm/zka/B2-kB27p/qqo/005A/qqatt/^ +http://musicmabey.subportal.com/sn/Themes/Misc__Themes/ +http://www.intel.it/eBusiness/pdf/prod/ia64/SAS_IA-64_Paper.pdf +http://elflife.bigpanda.net/2866/io.html +http://www.excelsior.com.mx/9609/960911/nac11.html +http://www.allgemeine-immobilien-boerse.de/ungarn/verkauf/Private-IB/Ferien-IB/Startseite/Allgemeine-IB/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/indexbeginn.htm +http://www.allgemeine-immobilien-boerse.de/ungarn/verkauf/Private-IB/Ferien-IB/Startseite/Allgemeine-IB/Gemeinsam/geschaeftsbedingungen.htm +http://www.wingateinns.com/ctg/cgi-bin/Wingate/look_over/AAAksrACwAAACCPAAT +http://my.netian.com/~rakyun/?N=D +http://www.bemi-immobilien.de/Landhaus-Bordeaux/Gemeinsam/versicherungen/gebaeude/Gemeinsam/immolink/Top-Darlehens-Konditionen/Gemeinsam/Inserieren/Gemeinsam/suche.htm +http://www.mirror.kiev.ua:8083/paper/2000/04/1251/text/04-07-5.htm +http://ring.toyama-u.ac.jp/archives/NetBSD/packages/1.4.2/sun3/?N=D +http://ring.toyama-u.ac.jp/archives/NetBSD/packages/1.4.2/sun3/lang/ +http://www.vstore.com/vstorecomputers/8store/ +http://indiadirectory.indiatimes.com/webdirectory/1514pg1.htm +http://indiadirectory.indiatimes.com/webdirectory/1513pg1.htm +http://www.online.kokusai.co.jp/Map/V0002508/wrd/G400/demo/ +http://www.gamespot.com.au/features/everquest_gg/creatures1.html +http://www.jxi.gov.cn/yw-ty001.nsf/view!OpenView&Start=38.11&Count=30&Expand=40 +http://www.jxi.gov.cn/yw-ty001.nsf/view!OpenView&Start=38.11&Count=30&Expand=42 +http://yp.gates96.com/6/0/40/22.html +http://yp.gates96.com/6/0/40/85.html +http://yp.gates96.com/6/0/41/26.html +http://yp.gates96.com/6/0/41/94.html +http://yp.gates96.com/6/0/42/50.html +http://yp.gates96.com/6/0/43/30.html +http://yp.gates96.com/6/0/43/76.html +http://yp.gates96.com/6/0/44/43.html +http://yp.gates96.com/6/0/44/61.html +http://yp.gates96.com/6/0/44/99.html +http://yp.gates96.com/6/0/45/37.html +http://yp.gates96.com/6/0/45/84.html +http://yp.gates96.com/6/0/47/33.html +http://yp.gates96.com/6/0/47/43.html +http://yp.gates96.com/6/0/47/54.html +http://yp.gates96.com/6/0/48/30.html +http://yp.gates96.com/6/0/48/47.html +http://yp.gates96.com/6/0/49/5.html +http://hammer.prohosting.com/~kobeweb/cgi-bin/nagaya/nagaya.cgi?room=036&action=mente +http://www.petropages.com/kproduct/k4267p.htm +http://webraft.its.unimelb.edu.au/536029/students/plam/pub/?M=A +http://www.ld.com/cbd/archive/1999/09(September)/13-Sep-1999/Fawd001.htm +http://www.caijing.yesky.com/33554432/36700160/122010.htm +http://yp.gates96.com/14/85/0/7.html +http://yp.gates96.com/14/85/2/86.html +http://yp.gates96.com/14/85/3/90.html +http://yp.gates96.com/14/85/6/37.html +http://yp.gates96.com/14/85/8/82.html +http://yp.gates96.com/14/85/8/88.html +http://cn.egroups.com/messages/Toledo_Storm/228 +http://mediate.magicbutton.net/do/session/625598/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-cart.html +http://rainforest.parentsplace.com/dialog/thread.pl/bradley2/10/2.html?dir=prevResponse +http://tvstore.zap2it.com/browse/TV/JACKET/s.CmMildAx +http://tvstore.zap2it.com/browse/TV/CLOCK/s.CmMildAx +http://findmail.com/post/studentdoctor?act=forward&messageNum=2315 +http://www.chaos.dk/sexriddle/d/j/l/a/y/ +http://gandalf.neark.org/pub/distributions/OpenBSD/src/gnu/egcs/libstdc++/testsuite/libstdc++.tests/?D=A +http://gd.cnread.net/cnread1/net/zpj/s/shenfang/004.htm +http://www.imagesignworks.com/vinylmasksforacidetching/index.nhtml +http://209.249.170.32/stores/dir/bycat/Holiday_and_Seasonal/Christmas.shtml +http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959867726/Catalog/1000107 +http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959867726/Catalog/1000108 +http://www.linux.com/networking/network/applications/interface/microsoft/IBM/ +http://www.linux.com/networking/network/applications/interface/microsoft/Corel/ +http://www.linux.com/networking/network/applications/interface/microsoft/?kw_offset=50 +http://www.tiefbau-suhl.de/Leistung/Stuetzmauern/stuetzmauern2.htm +http://providenet.tucows.com/win2k/adnload/38394_29124.html +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/index.opentext.net/weather/detail.cgi?us-dc +http://iceberg.adhomeworld.com/cgi-win/redirect.exe/2133549064 +http://www.dc.digitalcity.com/charlestonwvarea/announce/main.dci?page=letusknow +http://members.tripod.co.jp/yoshihiro_2/yotete.html +http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/immolink/Startseite/Gemeinsam/versicherungen/lebensversicherung/Gemeinsam/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/ +http://ftp.debian.org/dists/Debian2.2r0/non-free/binary-arm/web/?N=D +http://www.complete-skier.co.uk/resorts/survey/submit.asp?ResortID=1755 +http://members.tripod.com/~BHS_CC/boys_times_1997.html +http://fi.egroups.com/post/mens-health?act=forward&messageNum=11 +http://nomade.fr/cat/famille_sante/sante/medecine_pratique/medecine_generale/ +http://home.att.net/~mlbvault/mac8.htm +http://mirror.nucba.ac.jp/mirror/Perl/authors/id/ROSCH/String-ShellQuote-1.00.readme +http://www.nrk.no/finnmark/x12_9_96/nyh6.htm +http://ftp.debian.org/dists/Debian2.2r0/non-free/binary-m68k/editors/?N=D +http://134.84.160.1/infoserv/lists/nih-image/archives/nih-image-9702/0141.html +http://www.philly.digitalcity.com/saintjosephmo/penpals/browse.dci?cat=seniors&sort=m +http://www.idg.net/crd_percent_19960.html +http://204.202.130.51/playerfile/profile/mark_karcher.html +http://www.redrocksports.com/sports/webSession/shopper/RR972959692-31077/store/dept-5/department/dept-5/item/52800 +http://www.redrocksports.com/sports/webSession/shopper/RR972959692-31077/store/dept-5/department/dept-5/item/52900 +http://www.online.kokusai.co.jp/Service/V0043510/wrd/G200/service/service.html +http://www.service911.com/mvu/step/0,2632,1+13+139+23899+17191_4,00.html +http://216.34.146.180/141000afp/14worl21.htm +http://www.chaos.dk/sexriddle/t/p/v/r/i/ +http://www.chaos.dk/sexriddle/t/p/v/r/x/ +http://www.ualberta.ca/FTP/Mirror/debian/dists/potato-proposed-updates/eruby_0.0.9-1potato1_arm.changes +http://www.hbdaily.com.cn/scznb/20000622/BIG5/scznb^1104^16^Zn16014.htm +http://www.linux.com/networking/network/administrator/internet/ftp/install/ +http://bsdweb.pasta.cs.uit.no/bsdweb.cgi/xsrc/xc/lib/Xt/PassivGrab.c?sortby=author +http://bsdweb.pasta.cs.uit.no/bsdweb.cgi/xsrc/xc/lib/Xt/ConstrainP.h?sortby=author +http://www.jamba.de/KNet/_KNet-EAA8j1-vFd-13b95/browse.de/node.0/cdel3j591 +http://vvv.geocities.co.jp/SiliconValley-SanJose/5688/sn-3.html +http://vvv.geocities.co.jp/SiliconValley-SanJose/5688/n.html +http://www.amel.net/english/computer/games/b/X0006_Backstab__.html +http://www.amel.net/english/computer/games/b/X0059_Bumper_Ships_1.1.html +http://retailer.gocollect.com/do/session/1912693/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/sports/index.asp +http://www.hig.se/(apre,formoutput,modified,set,set_cookie)/~jackson/roxen/ +http://yp.gates96.com/3/73/80/18.html +http://yp.gates96.com/3/73/81/27.html +http://yp.gates96.com/3/73/81/48.html +http://yp.gates96.com/3/73/81/58.html +http://yp.gates96.com/3/73/82/38.html +http://yp.gates96.com/3/73/83/30.html +http://yp.gates96.com/3/73/83/43.html +http://yp.gates96.com/3/73/83/49.html +http://yp.gates96.com/3/73/83/52.html +http://yp.gates96.com/3/73/84/33.html +http://yp.gates96.com/3/73/84/75.html +http://yp.gates96.com/3/73/85/2.html +http://yp.gates96.com/3/73/85/44.html +http://yp.gates96.com/3/73/85/70.html +http://yp.gates96.com/3/73/86/37.html +http://yp.gates96.com/3/73/86/59.html +http://yp.gates96.com/3/73/87/97.html +http://yp.gates96.com/3/73/87/99.html +http://yp.gates96.com/3/73/88/58.html +http://yp.gates96.com/3/73/88/63.html +http://yp.gates96.com/3/73/88/97.html +http://yp.gates96.com/3/73/89/31.html +http://yp.gates96.com/3/73/89/40.html +http://deseretbook.com/products/4108132/stock-38.html +http://workingfamilies.digitalcity.com/madison/search/ +http://debian.linux.org.tw/debian/dists/Debian2.2r0/main/disks-sparc/current/?D=A +http://debian.linux.org.tw/debian/dists/Debian2.2r0/main/disks-sparc/current/base-contents.txt +http://www.wizardsoftheweb.com/news/183.shtml +http://mathematics.fiz-karlsruhe.de/stn/whyonline/why_0367.html +http://www.nrk.no/finnmark/x27_11_98/nyh3.htm +http://rex.skyline.net/navigate.cgi?computers,agriculture,nature,agriculture,computers +http://www.secinfo.com/d1ZG7r.78.htm +http://www.secinfo.com/d1ZG7r.74.htm +http://www.freesoftware.com.cn/python.org.cn/doc/essays/ppt/hp-training/tsld051.htm +http://www.nrk.no/finnmark/x28_5_96/nyh1.htm +http://www.areteoutdoors.com/channel/snow/downhilling/b.354.g.2944.html +http://www.areteoutdoors.com/channel/snow/downhilling/b.357.g.2944.html +http://www.mywebmd.net/roundtable_message/662348 +http://lovers-lane.porncity.net/216/ +http://myhome.thrunet.com/~estefe/seng/sen18.htm +http://myhome.thrunet.com/~estefe/seng/sen42.htm +http://myhome.thrunet.com/~estefe/seng/sen52.htm +http://myhome.thrunet.com/~estefe/seng/sen73.htm +http://no.egroups.com/login.cgi?login_target=%2Fmessages%2Fenglish-zone +http://www.uzp.gov.pl/biulety/1998/100/100_1327.html +http://www.uzp.gov.pl/biulety/1998/100/100_1341.html +http://www.uzp.gov.pl/biulety/1998/100/100_1372.html +http://www.uzp.gov.pl/biulety/1998/100/100_1377.html +http://www.uzp.gov.pl/biulety/1998/100/100_1428.html +http://www.hotelboulevard.com/fr/riviera/standard/html40f8403856d2fa84c9080a860b7608ba/sessionLang/ANG/prov/browse/lstLieu[0]/Saint-Tropez/resultatSearch.html +http://polygraph.ircache.net:8181/http_-2www.microsoft.com/frontpage/speeches/Pages/funds/portfolio.html +http://www9.hmv.co.uk:5555/do/session/1347778/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d40_sd0_pt0.html +http://edc.uni-augsburg.de/doc/susehilf/pak/paket_doinst_insure.html +http://www.schlagerplatten.de/NewmanJimmyC/B000009PXU.htm +http://cn.egroups.com/message/pro92/604 +http://wwws.br-online.de/geld/boerse/980107/190001.html +http://faqs.bilkent.edu.tr/faqs/sgi/faq/performer/section-3.html +http://faqs.bilkent.edu.tr/faqs/sgi/faq/performer/section-46.html +http://faqs.bilkent.edu.tr/faqs/sgi/faq/performer/section-105.html +http://faqs.bilkent.edu.tr/faqs/sgi/faq/performer/section-111.html +http://newsone.net/nnr/prep/maus.soziales.recht +http://www.mapion.co.jp/custom/tv/admi/14/14131/yako/3chome/1/ +http://info.verwaltung.uni-freiburg.de/doc/packages/qt/html/qpicture-members.html +http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959870915/ContentView/1000091/1/1200207 +http://tour.stanford.edu/cgi/locate2.prl/135.5/jltA +http://mapquest.digitalcity.com/daytonarea/salaries/main.dci?page=admin +http://linuxberg.zeelandnet.nl/x11html/adnload/9146_6809.html +http://medwebplus.com/subject/Alternative%20and%20Complementary%20Medicine/Population/Lists%20of%20Internet%20Resources?^ftc=240&^cc=ftc +http://ftp.du.se/disk0/slackware/slackware-current/contrib/ham/login/package_descriptions +http://yp.gates96.com/12/56/70/0.html +http://yp.gates96.com/12/56/70/14.html +http://yp.gates96.com/12/56/70/62.html +http://yp.gates96.com/12/56/71/19.html +http://yp.gates96.com/12/56/71/38.html +http://yp.gates96.com/12/56/71/46.html +http://yp.gates96.com/12/56/72/49.html +http://yp.gates96.com/12/56/72/78.html +http://yp.gates96.com/12/56/72/91.html +http://yp.gates96.com/12/56/73/18.html +http://yp.gates96.com/12/56/73/52.html +http://yp.gates96.com/12/56/74/15.html +http://yp.gates96.com/12/56/74/54.html +http://yp.gates96.com/12/56/74/79.html +http://yp.gates96.com/12/56/75/28.html +http://yp.gates96.com/12/56/75/68.html +http://yp.gates96.com/12/56/75/71.html +http://yp.gates96.com/12/56/75/76.html +http://yp.gates96.com/12/56/75/88.html +http://yp.gates96.com/12/56/75/94.html +http://yp.gates96.com/12/56/76/27.html +http://yp.gates96.com/12/56/76/57.html +http://yp.gates96.com/12/56/76/73.html +http://yp.gates96.com/12/56/77/60.html +http://yp.gates96.com/12/56/78/3.html +http://yp.gates96.com/12/56/78/45.html +http://yp.gates96.com/12/56/78/64.html +http://yp.gates96.com/12/56/78/86.html +http://yp.gates96.com/12/56/78/91.html +http://yp.gates96.com/12/56/78/95.html +http://yp.gates96.com/12/56/79/39.html +http://yp.gates96.com/12/56/79/75.html +http://www.alldata.com/TSB/19/831915CS.html +http://polygraph.ircache.net:8181/iisadmin/libraries/http_-2www.travelsc.com/welcome_v3/form1.html +http://majordomo.cgu.edu/cgi-bin/lwgate/NEMAI/archives/nemai.archive.0003/Date/article-9.html +http://home.tiscalinet.be/fysinet/studententips/tipsVanStudentenNicolas/sld007.htm +http://www4.netease.com/~abac/writting/zpnr/xw.htm +http://64.209.212.162/learnlots/step/0,2891,47+75+26299+10981_5,00.html +http://www.adcentral.com/cgi-bin/w3com/pws/adsites/KLhIZjY9X9xD5moK2JGI9yyxCV4tsONpzxjYyzP1Uq5ZFTlQAg3Wd-d9dlZbdFK8g3p8_O5GT8q_tKPHmrHXekF-PEpGmxPO69EhQYYR0fwhi_k2GqJa7eAy8n4PQUv0fLw2IIBwNP_qQkQpWEvx666v +http://www.nrc.nl/W2/Nieuws/1998/08/01/ +http://online.excite.de/unterhaltung/katalog/38320 +http://202.167.121.158/ebooks/jetro/tra1-1-1.html +http://ftp.uni-paderborn.de/aminet/aminet/demo/tp94/Blur.readme +http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=11,14,12,26 +http://www.intellicast.com/Ski/World/UnitedStates/Northeast/NewYork/WingedFootGCWest/WindChill/d1_12/ +http://yp.gates96.com/10/17/80/25.html +http://yp.gates96.com/10/17/80/66.html +http://yp.gates96.com/10/17/80/92.html +http://yp.gates96.com/10/17/82/56.html +http://yp.gates96.com/10/17/82/80.html +http://yp.gates96.com/10/17/83/48.html +http://yp.gates96.com/10/17/83/71.html +http://yp.gates96.com/10/17/83/85.html +http://yp.gates96.com/10/17/84/9.html +http://yp.gates96.com/10/17/84/20.html +http://yp.gates96.com/10/17/84/56.html +http://yp.gates96.com/10/17/84/63.html +http://yp.gates96.com/10/17/85/88.html +http://yp.gates96.com/10/17/86/4.html +http://yp.gates96.com/10/17/86/43.html +http://yp.gates96.com/10/17/86/45.html +http://yp.gates96.com/10/17/86/89.html +http://yp.gates96.com/10/17/86/97.html +http://yp.gates96.com/10/17/87/2.html +http://yp.gates96.com/10/17/87/46.html +http://yp.gates96.com/10/17/88/0.html +http://yp.gates96.com/10/17/89/21.html +http://yp.gates96.com/10/17/89/83.html +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.w3.org/International/O-URL-and-ident +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=(9,6)+21,0+3,0 +http://polygraph.ircache.net:8181/http_-2www.hystuff.com/nrc.htm +http://jproxy.uol.es/jproxy/http://www.ocregister.com/beaches/capistrano +http://www1.zdnet.com/companyfinder/filters/products/0,9996,38071-58,00.html +http://www.ftp.uni-erlangen.de/pub/mirrors/_other/afterstep.foo.net/AfterStep/binaries/?M=A +http://www.genome.wustl.edu:8021/gsc10/mouse/up/?D=A +http://www.genome.wustl.edu:8021/gsc10/mouse/up/up24/ +http://rotten-tomatoes.com/movies/browse/1074473/reviews.php?view=reviews.source +http://www.virtual-impact-mktg.com/fx110001.htm +http://genforum.genealogy.com/hagen/messages/164.html +http://genforum.genealogy.com/hagen/messages/111.html +http://genforum.genealogy.com/hagen/messages/7.html +http://genforum.genealogy.com/hagen/messages/271.html +http://genforum.genealogy.com/hagen/messages/40.html +http://nt.mortgage101.com/partner-scripts/1024.asp?p=cashsolutions +http://nt.mortgage101.com/partner-scripts/1026.asp?p=cashsolutions +http://library.cuhk.edu.hk/search*chi/t龍情三地+%26%2359%3B+[3]/t%7B21632b%7D%7B213e5b%7D%7B213024%7D%7B213779%7D++++3/-5,-1,0,B/browse +http://ftp.net.uni-c.dk/pub/linux/redhat/redhat-6.2/sparc/misc/src/anaconda/isys/?S=A +http://ftp.net.uni-c.dk/pub/linux/redhat/redhat-6.2/sparc/misc/src/anaconda/isys/modutils/ +http://cobrand.altrec.com/shop/detail/8273/30 +http://pegasus.infor.kanazawa-it.ac.jp/~hatlab/kaga/docs/jdk1.3-beta_api/jdk1.3/docs/api/java/lang/class-use/ClassFormatError.html +http://bci.tucows.com/winnt/adnload/58788_28761.html +http://www.buybuddy.com/sleuth/33/1/1020503/300/ +http://203.116.23.91/computer/pages2/it120800e.html +http://203.116.23.91/special/newspapers/2000/pages4/computer030700.html +http://203.116.23.91/computer/pages1/software131197.html +http://dic.empas.com/show.tsp/?q=anarchically&f=B +http://noodle.tigris.org/source/browse/subversion/subversion/libsvn_vcdiff/tests/target0.txt +http://www.dbservicestore.de/home/db_reise_touristik/angebote/db_rt_gat_muenster.shtml +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=2&discrim=16,237,275 +http://www.narodnaobroda.sk/20000926/06_006.html +http://mandijin.chinamarket.com.cn/C/Showdetail_company/22591.html +http://202.167.121.158/ebooks/jetro/t6.html +http://a228.g.akamai.net/7/228/289/dd50406be5fc91/news.indiainfo.com/2000/08/17/world-index.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=disaminerei&l=it +http://polygraph.ircache.net:8181/http_-2www.eastnebr.net/html/conversions.htm +http://www.secinfo.com/d2wVq.7ar.htm +http://www.secinfo.com/d2wVq.7B5.htm +http://www.secinfo.com/d2wVq.6cd.htm +http://www.secinfo.com/d2wVq.59x.htm +http://www.jamba.de/KNet/_KNet-xdz8j1-mFd-13b2b/browse.de/node.0/cenv0b09a +http://213.36.119.69/do/session/152991/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/jeux/jeux_himalaya.html +http://www.dailyexcelsior.com/99sep30/edit.htm +http://www.dailyexcelsior.com/99sep30/sports.htm +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/misc/misc/music/lit/quizz/computers/netwars.html +http://cometweb01.comet.co.uk/do!session=132020&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkjHfZoLlplLcqkKZljLlfb5lal5tkiLlXaLl0 +http://www.affiliate.hpstore.hp.co.uk/do/session/380832/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/search.asp +http://208.216.182.15/exec/obidos/ASIN/0516206443/qid=972959559/sr=1-22/ +http://fi.egroups.com/messages/alau/2350 +http://ads.puntopartenza.com/cgi-bin/redirect.cgi/31033631 +http://pds.nchu.edu.tw/cpatch/ftp/ftpctrl/?N=D +http://www.brio.de/BRIO.catalog/39fe2f5606def942273fd472aa7806e2/UserTemplate/5 +http://ep.com/js/mi/c7246/b0/832275.html +http://ep.com/js/mi/c7246/b0/837505.html +http://ep.com/js/mi/c7246/b0/764046.html +http://www.fogdog.com/cedroID/ssd3040183223072/nav/products/nhl/pittsburgh_penguins/fan/gender/autographed_pucks/ +http://netway.pda.tucows.com/palm/preview/33567.html +http://netway.pda.tucows.com/palm/preview/34007.html +http://cometweb01.comet.co.uk/do!session=132006&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkjHfZoLlplLcqkKZljLlfb5lal5tkiLlXaLl0 +http://www.udn.com.tw/ARCHIVE/2000/08/04/DOMESTIC/YUNLIN/587058.htm +http://www.linux.com/networking/network/support/web/news/services/ +http://www.linux.com/networking/network/support/web/news/website/ +http://www.linux.com/networking/network/support/web/news/business/ +http://ads.carltononline.com/accipiter/adclick/site=purejamba/area=jamba.home_page/AAMSZ=IAB_FULL_BANNER//ACC_RANDOM=972959548213 +http://www-x500-1.uni-giessen.de:8890/Lcn%3dConsuelo%20Alvarez,ou%3dDpto.%20Fisiologia%20y%20Biologia%20Animal,o%3dUniversidad%20de%20Sevilla,c%3dES +http://www.chaos.dk/sexriddle/b/q/v/y/n/ +http://www.cs.kuleuven.ac.be/~java/docs/tutorial/uiswing/converting/example-1dot1/ListDemo.html +http://golfonline.comfluent.net/cgi.pan$player&lpga82&Debbie_Raso&lpga?golfstats +http://acetoys.com/cgi-bin/exec/modify_cart_button=1&cart_id=1999923.7130.303&page=/tystore/htmlfiles/eden/dw.html +http://www.bigchurch.com/cgi-bin/w3com/pws/bc/y1hIyNzn0Bl2XX5GzG9wVnUEhWD8GTd-XbpDm6aNI4ZMGTnV_YsP2OjB0RrwLpDbJub1pKlzEMrInSQi9hRM-Rz4WNq8C1vKJ9STiU9leUD_a3PBVh-7OMZDzJtyEBAXTehiRqme6jBR +http://www.bigchurch.com/cgi-bin/w3com/pws/bc/mChIR_iy1798J8x9InaTkzOfisuwH2hv2KUj0e64IQ9CeS327muTnTo70bT5YC4YznUddEOY5WdX70keIPRlsQibJtG6uzZtaaPmL58O5zJ0z_2PkJNxmBS5dj5-gWoeBgE0zaSvCbi66Grq +http://wap.jamba.de/KNet/_KNet-8qB8j1-FFd-13blo/browse.de/node.0/cde7f2elw +http://collection.nlc-bnc.ca/100/201/300/info_tabac/html/1997/bull7/fdacarol.html +http://pub17.ezboard.com/fzhaostempleofenlightenmentzhaosforum.showMessage?topicID=116.topic +http://www.home.ch/~spaw4360/HOWTO_fr/Ethernet-HOWTO-5.html +http://www.chaos.dk/sexriddle/s/g/n/y/j/ +http://polygraph.ircache.net:8181/http_-2www.horizonfinance.com/https_-2www.truste.org/validate/page3.html +http://marketbiz.subportal.com/sn/Themes/Sports_Themes/288.html +http://www.chinaccm.com/04/news/200004/20/120305.asp +http://www.american.webtourist.net/travel/northamerica/usa/lagunabeach/bwlagunareefinn.htm +http://elib.zib.de/pub/visual/avs/mirror/imperial/new/?S=A +http://www.burstnet.com/ads/ad7826a-map.cgi/969206790 +http://yp.gates96.com/14/82/10/81.html +http://yp.gates96.com/14/82/12/82.html +http://yp.gates96.com/14/82/13/55.html +http://yp.gates96.com/14/82/14/27.html +http://yp.gates96.com/14/82/14/31.html +http://yp.gates96.com/14/82/15/52.html +http://yp.gates96.com/14/82/17/16.html +http://yp.gates96.com/14/82/17/93.html +http://www.outpersonals.com/cgi-bin/w3com/pws/out/P2hI5ODQEZ1-vIl-agOzeOeNg4wShDlZrsCbdT5YZ3TrprEU4rb4NnnDXiGmf5cX3dh8ltMer04TMDd3q-cE5Mne85eH57ltxsi4ZQfER6vkktoaaYlS9JFTzylmCJZ2_PAT9uu2oWvIjgMzt9toyeuV +http://www.mirror.ac.uk/sites/ftp.microsoft.com/deskapps/powerpt/KB/Q226/7/ +http://mirror.nucba.ac.jp/mirror/Perl/authors/id/MIKEKING/?M=A +http://lists.insecure.org/linux-kernel/2000/Jun/4357.html +http://www.nlc-bnc.ca/indexmus-bin/resultsum/m=0/e=0/h=25/p=1/f=AU/t=Siroir,+Maryse+Angrignon +http://genforum.genealogy.com/cgi-bin/print.cgi?leavy::19.html +http://www.egroups.com/message/malaysiakini/219 +http://wuarchive.wustl.edu/graphics/mirrors/ftp.povray.org/.3/netlib/ode/rksuite/?S=A +http://www.earthsystems.org/list/greenyes/jan2000/1999-2/0858.html +http://pp3.shef.ac.uk:4040/search=browse/dn=countryName%3DGB%40organizationName%3DUniversity+of+Sheffield%40organizationalUnitName%3DAutomatic+Control+and+Systems+Engineering%40commonName%3DI+D+Durkacz +http://cobrand.altrec.com/shop/detail/6133/15/sizing +http://cobrand.altrec.com/shop/detail/5624/17/write +http://members.theglobe.com/inwardpath/history.htm +http://findmail.com/post/studentdoctor?act=reply&messageNum=5168 +http://www.service911.com/everythingtele/step/0,2675,3+26057+24201+16394_0,00.html +http://www.linux.com/networking/network/free/release/development/mysql/ +http://www.nbip.com.cn/books/xdwx/Hongyan/hongyan14.html +http://ftp.jp.debian.org/debian-non-US/dists/sid/non-US/non-free/binary-hurd-i386/?N=D +http://homepage.swissonline.ch/chico_logo/www.Link008 +http://homepage.swissonline.ch/chico_logo/www.Link009 +http://citeseer.nj.nec.com/cidcontext/3719857 +http://itcareers.careercast.com/texis/it/itjs/+CwwBme3AT+6e-xwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewXnmoBGnamwBwxw5naBnqrDdcdtOaOnwGaMdDBramwOaqmwBwamn5otDamnVncdpoDtanDtoDnnGoDtaMFqhTfR20DzmebmwwwpBme3AT+6ekxwww5rmeXdwwwBrmeZpwww/jobpage.html +http://www.amazon.com.hk/exec/obidos/tg/stores/detail/-/pro-tools/B0000224UB/customer-reviews/ref=th_hp_rs_2_6/ +http://www.ard-buffet.de/buffet/teledoktor/1998/02/16/ +http://pub19.ezboard.com/fmissionimplausiblewhatpeoplearesaying.emailToFriend?topicID=41.topic +http://no.egroups.com/message/NikonCoolPix/211 +http://www.gasex.com/free.gay.sex/gay.men.dick.dicks.html +http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/showFolder/100001/1255931 +http://www.uni-duesseldorf.de/ftp/ftp/pf/s/yagirc-0.65.6/?N=D +http://www.outpersonals.com/cgi-bin/w3com/pws/out/uIhI1DhpdvAdxVFONIJuaNcvtSTejSMmZIBgOwsZamHFS4JpS3i6VWNOSb8LsLcmqmG0gp2hs1YjuScHwXmociV5L_3_fCYngafHC4CIYDuKoI-rOZldw1RU5K3jOfh5d3PxatRmmHqB662F +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/elax176954/eus53832/eus155852/eus53907/eus62316/ +http://www.magictraders.com/cgi-bin/ubb/ubbmisc.cgi?action=getbio&UserName=Ammo187 +http://fi.egroups.com/login.cgi?login_target=%2Fgroup%2Fweirdchicks +http://www.accesslasvegas.com/shared/health/adam/ency/article/000589.images.html +http://pp3.shef.ac.uk:4040/search=browse/dn=countryName%3DGB%40organizationName%3DAberdeen+University%40organizationalUnitName%3DGeneral+Practice%40commonName%3DMorrison+S +http://worldres.lycos.com/script/gen_amen.asp?hotel_id=2252&n=2089 +http://tulips.ntu.edu.tw/search*chi/dSymbolism+in+fairy+tales/dsymbolism+in+fairy+tales/-5,-1,0,B/browse +http://ftp.du.se/disk4/FreeBSD/branches/4.0-stable/ports/x11-clocks/pclock/ +http://ftp.du.se/disk4/FreeBSD/branches/4.0-stable/ports/x11-clocks/xtimer/ +http://polygraph.ircache.net:8181/cgi-win/lincoln/$cgi4wpro.exe/http_-2www.k56.com/http_-2www.webexplorer.net/c/SHLFFREZ.HTM +http://www.ecs.soton.ac.uk/~seg7/private/contact.html +http://wiem.onet.pl/wiem/00de68-s.html +http://lcweb2.loc.gov/ll/llnt/008/?M=A +http://www.alladvantage.com/pressroom.asp?refid=CBI-463 +http://herndon1.sdrdc.com/cgi-bin/ind_detail/FERRELL|PORTER|FORT+WORTH|TX|76107|SINGLE+SERVER+COMMUNICATIONS/ +http://herndon1.sdrdc.com/cgi-bin/ind_detail/HARRIS|WILLIAM|FAIRFAX|VA|22031|HARRIS+AND+ASSOCIATES/ +http://herndon1.sdrdc.com/cgi-bin/ind_detail/HUTCHER|LARRY|NEW+YORK|NY|10023|DAVIDOFF+AND+MALITO/ +http://herndon1.sdrdc.com/cgi-bin/ind_detail/ISIKOFF|NATHAN+R|WASHINGTON|DC|20007|CAREY-WINSTON+CO/ +http://www.linux.com/networking/network/communications/security/wireless/protocol/ +http://www.linux.com/networking/network/communications/security/wireless/technology/ +http://retailer.gocollect.com/do/session/1912719/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/about.asp +http://retailer.gocollect.com/do/session/1912719/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/limited_editions.asp +http://retailer.gocollect.com/do/session/1912719/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp +http://www9.hmv.co.uk:5555/do/session/1347779/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/hiddenframe.html +http://pub9.ezboard.com/fwestlifedublinmessageboardwestlifemessageboard.showMessage?topicID=8.topic +http://no.egroups.com/subscribe/hardzero +http://link.fastpartner.com/do/session/600378/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/index.php +http://link.fastpartner.com/do/session/600378/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/gosafe.php +http://link.fastpartner.com/do/session/600378/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/bitconomy.php +http://www.hello.co.jp/~daichi2/ +http://bbs.nsysu.edu.tw/txtVersion/treasure/ChiaYi/M.937783175.A/M.959916136.M.html +http://chat.hani.co.kr/NetBBS/Bbs.dll/chosun21/lst/qqeq/1/zka/B2-kB2Bp/qqo/PRMY +http://www.gartenfachmarkt.de/haus/schleifen/so.htm +http://links2go.publiweb.com/topic/US_Department_of_Agriculture +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=14,15,6,36,22 +http://www.linux.com/networking/network/new/hardware/open_source/operating_system/ +http://www.linux.com/networking/network/new/hardware/open_source/availability/ +http://tokyo.cool.ne.jp/pure0101/Oblivion_dust.html +http://www.digitaldrucke.de/(aktuell,computer,gaestebuch,hilfe,hilfeallgemein,individualverkehr,kultur,onlineservice,peripherie,sense,veranstaltungen,verkehr)/_fort/html/themen/computer/hard/links/mitsu.htm +http://www.gbnf.com/genealogy/jenkins/html/d0097/I4129.HTM +http://www.geocities.co.jp/Outdoors-River/1625/hakuba0502.htm +http://ftp.fi.debian.org/OpenBSD/src/regress/share/man/ +http://www3.buch-per-sms.de/angemeldet.jsp$ID=To7767mC050667397857644736At0.8818825373175998 +http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=15,25,16,27 +http://debian.tod.net/debian/dists/sid/main/binary-sparc/electronics/?D=A +http://hs1.takeoff.ne.jp/~hatuse/ +http://polygraph.ircache.net:8181/Keyboards/http_-2www.sky.net/~robertf/handson/engine.html +http://www.gbnf.com/genealogy/jenkins/html/d0005/I3818.HTM +http://sepwww.stanford.edu/oldreports/sep67/old_src/jon/extend/junk.listing +http://www.kol.net/~calldj/cyberstar/map/dw25a.htm +http://citeseer.nj.nec.com/cidcontext/1297195 +http://citeseer.nj.nec.com/cidcontext/1297207 +http://books.hyperlink.co.uk/xt2/Peace_Verses_War/Cole/Derek/0722329539 +http://www.spousehouse.com/ +http://futures.homeway.com.cn/lbi-html/news/special/zhzt/jdht/twparty/zhengfu94652.shtml +http://www.yorosiku.net:8080/-_-http://www.zdnet.co.jp/zdii/interviews/interviews.html +http://library.cwu.edu/search/aIdaho+State+University/aidaho+state+university/-5,-1,0,E/frameset&F=aidaho+state+university&2,,0 +http://pelit.saunalahti.fi/.1/tucows/preview/68721.html +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=34,20,30,36,32 +http://pike-community.org/(base=/forums/show.html,forum=7,show=146,t=972959487953431)/forums/show.html +http://pike-community.org/(base=/forums/show.html,forum=7,show=185,t=972959487953431)/forums/show.html +http://pike-community.org/(base=/forums/show.html,explode=763,forum=7,t=972959487953431)/forums/show.html +http://pike-community.org/(base=/forums/show.html,forum=7,show=870,t=972959487953431)/forums/show.html +http://pike-community.org/(base=/forums/show.html,forum=7,show=890,t=972959487953431)/forums/show.html +http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/d3/b34,8,1,,1f,1,65,,1f,65, +http://www.telematik.informatik.uni-karlsruhe.de/osf/sw/v4.0x/lp2/bst320/kit/ +http://cafe3.daum.net/Cafe-bin/Bbs.cgi/harukypds/rnw/zka/B2-kB2Zq +http://www.digitaldrucke.de/(computer,hilfe)/_fort/html/themen/computer/hard/links/escom.htm +http://www2.ipc.pku.edu.cn/scop/pdb.cgi?sid=d6stdb_ +http://www2.ipc.pku.edu.cn/scop/pdb.cgi?sid=d4stdc_ +http://www.shopworks.com/index.cfm/action/specials/userid/00029735-2E1C-19FE-AF65010C0A0A8CF2 +http://www.shopworks.com/index.cfm/action/search/userid/00029735-2E1C-19FE-AF65010C0A0A8CF2 +http://www.helpnow.net.cn/helpnow/hardware/bbs/cpu/?D=A +http://books.hyperlink.co.uk/xt1/Light_My_Fire/Manzarek/Ray/0099280655 +http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/src/crypto/heimdal/appl/ftp/ftp/?sortby=author +http://tucows.interbaun.com/winme/adnload/5147_28523.html +http://tucows.interbaun.com/winme/adnload/137019_28530.html +http://moviestore.zap2it.com/browse/MOVIES/COLLECTI/s.NedNjpDf +http://moviestore.zap2it.com/browse/MOVIES/STRAW/s.NedNjpDf +http://www.online.kokusai.co.jp/Words/V0043505/wrd/G700/words/kana_main.html +http://www.mirror.edu.cn/res/sunsite/pub/X11/contrib/window_managers/gwm/patches/gwm_patch_1.8a_001 +http://www.musicblvd.com/cgi-bin/tw/270242907922133_20_hip +http://www.cowo.de/archiv/1991/21/9121c045.html +http://www.russ.ru:8080/netcult/nevod/19990827-pr.html +http://usol.linux.tucows.com/x11html/preview/26680.html +http://usol.linux.tucows.com/x11html/preview/10385.html +http://yp.gates96.com/7/22/20/54.html +http://yp.gates96.com/7/22/20/67.html +http://yp.gates96.com/7/22/20/71.html +http://yp.gates96.com/7/22/22/26.html +http://yp.gates96.com/7/22/22/55.html +http://yp.gates96.com/7/22/22/74.html +http://yp.gates96.com/7/22/22/94.html +http://yp.gates96.com/7/22/23/38.html +http://yp.gates96.com/7/22/23/59.html +http://yp.gates96.com/7/22/24/43.html +http://yp.gates96.com/7/22/24/60.html +http://yp.gates96.com/7/22/24/64.html +http://yp.gates96.com/7/22/24/66.html +http://yp.gates96.com/7/22/24/72.html +http://yp.gates96.com/7/22/24/85.html +http://yp.gates96.com/7/22/26/11.html +http://yp.gates96.com/7/22/26/69.html +http://yp.gates96.com/7/22/27/3.html +http://yp.gates96.com/7/22/27/11.html +http://yp.gates96.com/7/22/27/22.html +http://yp.gates96.com/7/22/27/48.html +http://yp.gates96.com/7/22/27/69.html +http://yp.gates96.com/7/22/28/13.html +http://yp.gates96.com/7/22/28/30.html +http://yp.gates96.com/7/22/29/39.html +http://yp.gates96.com/7/22/29/58.html +http://www.allgemeine-immobilien-boerse.de/frankfurt/verkauf/Gemeinsam/Super-Zins-Konditionen/Private-IB/Startseite/IIM-Teil/Startseite/Gemeinsam/Super-Zins-Konditionen/anforderungsformular.htm +http://cobrand.altrec.com/shop/detail/8470/9/description +http://oa-nett.no/0/73/90/2.html +http://www.nordi.no/~steinsk/ +http://www02.geocities.co.jp/Stylish/6692/ +http://no.egroups.com/login.cgi?login_target=%2Fmessages%2Fsan-diego-tango +http://no.egroups.com/message/san-diego-tango/390 +http://www.jamba.de/KNet/_KNet-m_C8j1-PFd-13bt7/showInfo-special1.de/node.0/cenv0b09a +http://www.bemi-immobilien.de/Ferien-IB/Startseite/Gemeinsam/immolink/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Startseite/Gemeinsam/versicherungen/gebaeude/Startseite/froben.htm +http://it.egroups.com/post/pimnews-homeworker?act=reply&messageNum=661 +http://members.es.tripod.de/remoto/t2/p3b.htm +http://no.egroups.com/post/Translat2000?act=reply&messageNum=530 +http://www.opengroup.com/pabooks/081/0816631352.shtml +http://www6.freeweb.ne.jp/feminine/ki18/portrait10/p21.htm +http://genforum.genealogy.com/cgi-genforum/forums/cantrell.cgi?2117 +http://www9.hmv.co.uk:5555/do/session/1347769/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d30_sd0_pt0.html +http://polygraph.ircache.net:8181/docs/Win95/MSdialer/http_-2www.fastcounter.com/http_-2www.perrypip.com/http_-2www.scruz.net/~dvb/cam.html +http://polygraph.ircache.net:8181/docs/Win95/MSdialer/http_-2www.fastcounter.com/http_-2www.perrypip.com/~logan/ +http://polygraph.ircache.net:8181/docs/Win95/MSdialer/http_-2www.fastcounter.com/http_-2www.perrypip.com/http_-2hits.omino.com/ +http://javatest.a-net.nl/servlet/pedit.Main/http://epidem13.plantsci.cam.ac.uk/~js/glossary/course-glossary.html +http://www.hellefors.se/ulf/akno/alla/p0349c5e1e.html +http://home.no.net/islamnor/had.sira.html +http://www.gutenberg2000.de/immerman/muenchim/muen1171.htm +http://www.gutenberg2000.de/immerman/muenchim/muen3091.htm +http://www.gutenberg2000.de/immerman/muenchim/muen7011.htm +http://www.sikhnet.com/sikhnet/music.nsf/by%20Shabad!OpenView&Start=30&Count=20&Expand=2 +http://www.proteome.com/databases/PombePD/reports/SPCC613.01.html +http://www.midwestvanlines.com/oh/indexC.html +http://ring.tains.tohoku.ac.jp/pub/linux/debian/debian-jp/dists/stable/contrib/binary-arm/electronics/?S=A +http://members.tripod.com/~infolog/Genhouses/Chap12.htm +http://www.4positiveimages.com/4positiveimages/1998693855/UserTemplate/2 +http://www.greenleaves.com/bookcat/gb_096855900X.html +http://www-rn.informatik.uni-bremen.de/home/X11R6/xc/doc/hardcopy/test/?M=A +http://rex.skyline.net/html/Shipping_of_Goods.html?48,airplanes,transportation,collectibles,transportation +http://rex.skyline.net/html/Automobile_Classified_Listings.html?59,airplanes,transportation,collectibles,transportation +http://www.admin.co.martin.fl.us/GOVT/depts/cas/corresp/2000/cas00l.133.html +http://www.admin.co.martin.fl.us/GOVT/depts/cas/corresp/2000/cas00l.126.html +http://www.affiliate.hpstore.hp.co.uk/do/session/380834/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hpstore.hewlett-packard.fr/gp +http://link.fastpartner.com/do/session/600367/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/no/ +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www-library.lbl.gov/photo/gallery/ +http://dogbert.wu-wien.ac.at/UniverCD/cc/td/doc/product/core/cis12012/bfrcfig/4334acps/?M=A +http://ftp.uni-stuttgart.de/pub/tex/nonfree/support/latexdraw/doc/ltdmanual.html.g/node10.html +http://se.egroups.com/message/911dispatchers/718 +http://ftp.eecs.umich.edu/.1/people/jfr/Pinata_Book/?D=A +http://community.bigchalk.com/servlet/schools_ProcServ/DBPAGE=cge&GID=66001000660906746080215398&PG=66001000660906746080492039 +http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=16,27,29,4 +http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=22,27,29,4 +http://pds.nchu.edu.tw/cpatch/ftp/dap/cdap_4002.txt +http://pds.nchu.edu.tw/cpatch/ftp/dap/source/ +http://kuyper.calvin.edu/fathers2/ANF-03/anf03-22.htm +http://kuyper.calvin.edu/fathers2/ANF-03/anf03-27.htm +http://blisty.internet.cz/1250/9908/19990813a.html +http://ring.shibaura-it.ac.jp/archives/doc/jpnic/minutes/committee/200008/shiryou-2-8-2.txt +http://194.128.65.4/pa/cm199697/cmhansrd/vo970306/text/70306w14.htm +http://www.mortgagemag.com/guide/c096/c096573.htm +http://link.fastpartner.com/do/session/600369/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mondosoft.php +http://link.fastpartner.com/do/session/600369/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/gosafe.php +http://cometweb01.comet.co.uk/do!session=132008&vsid=692&tid=20&cid=37051&mid=1000&rid=1060&chid=1702&url=eqqLmwlGltt5tkjHfZoLlplLcqkKZljLlfb5lal5tkiLlXaLl0 +http://www.vh.org///////Patients/IHB/FamilyPractice/AFP/November1994/HormoneReplacement.html +http://ftp.sunet.se/pub/unix/OpenBSD/distfiles/md5/74892a6ae002937d011d3e1102269b7f/?M=A +http://www.pcdads.com/pressroom/archive/releases/cn112999.htm +http://www.pcdads.com/pressroom/archive/releases/Fe90199a.htm +http://www.pcdads.com/pressroom/archive/releases/Cn042199.htm +http://www.cheap-cds.com/surf/order/017172 +http://www.hani.co.kr/ECONOMY/data/9909/day09/print/p00909060.html +http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/MarketingStrategie/Startseite/Gemeinsam/Inserieren/Gemeinsam/Gemeinsam/versicherungen/unfall/anforderungsformular.htm +http://www.sj-rmall.com/Mall/Catalog/Product/ASP/product-id/57419/store-id/1000400121.html +http://www.travelodge.com/ctg/cgi-bin/Travelodge/home/AAAksrACwAAABvTAAd +http://ctc.org.cn/ctc2/news/internet/develop/news0322-6.htm +http://www.schlagertempel.de/FallbachTrio/B000025MBP.htm +http://www.fogdog.com/cedroID/ssd3040183238127/nav/products/nike/1b/all/10.html +http://www.fogdog.com/cedroID/ssd3040183238127/customer_service/security_policy.html +http://in.egroups.com/login.cgi?login_target=%2Fgroup%2Fradiotutorium +http://yp.gates96.com/7/87/70/43.html +http://yp.gates96.com/7/87/70/61.html +http://yp.gates96.com/7/87/71/85.html +http://yp.gates96.com/7/87/72/75.html +http://yp.gates96.com/7/87/73/1.html +http://yp.gates96.com/7/87/73/5.html +http://yp.gates96.com/7/87/73/60.html +http://yp.gates96.com/7/87/74/34.html +http://yp.gates96.com/7/87/75/9.html +http://yp.gates96.com/7/87/75/50.html +http://yp.gates96.com/7/87/75/92.html +http://yp.gates96.com/7/87/76/2.html +http://yp.gates96.com/7/87/76/59.html +http://yp.gates96.com/7/87/76/92.html +http://yp.gates96.com/7/87/78/30.html +http://yp.gates96.com/7/87/78/32.html +http://yp.gates96.com/7/87/78/75.html +http://yp.gates96.com/7/87/78/85.html +http://yp.gates96.com/7/87/78/93.html +http://yp.gates96.com/7/87/79/30.html +http://yp.gates96.com/7/87/79/50.html +http://yp.gates96.com/7/87/79/71.html +http://yp.gates96.com/7/87/79/85.html +http://interhotel.com/luxembourg/es/hoteles/45691.html +http://interhotel.com/luxembourg/es/hoteles/73094.html +http://bart.kullen.rwth-aachen.de/~quake3/Html_log/471_chat.html +http://search.yam.com.tw/en/search/rec/travel/domest/resorts/miaolir/ +http://www.narodnaobroda.sk/19991009/23_006.html +http://news.china.com/zh_cn/social/1007/20001027/7624.html +http://www.fila.com.br/ +http://www.jobvillage.com/channel/jobs/health_care/female_health/b.3122.g.2360.html +http://online.excite.de/bildung/katalog/35461 +http://deportes.ole.com/ocio/articulo/articulo.cfm?ID=OCI8055 +http://yp.gates96.com/3/36/90/2.html +http://yp.gates96.com/3/36/90/37.html +http://yp.gates96.com/3/36/90/55.html +http://yp.gates96.com/3/36/90/79.html +http://yp.gates96.com/3/36/91/7.html +http://yp.gates96.com/3/36/92/59.html +http://yp.gates96.com/3/36/92/95.html +http://yp.gates96.com/3/36/93/76.html +http://yp.gates96.com/3/36/93/88.html +http://yp.gates96.com/3/36/94/41.html +http://yp.gates96.com/3/36/94/64.html +http://yp.gates96.com/3/36/95/16.html +http://yp.gates96.com/3/36/95/33.html +http://yp.gates96.com/3/36/95/39.html +http://yp.gates96.com/3/36/96/36.html +http://yp.gates96.com/3/36/96/53.html +http://yp.gates96.com/3/36/99/30.html +http://yp.gates96.com/3/36/99/73.html +http://download.sourceforge.net/mirrors/turbolinux/turbolinux-cn/pub/turbolinux/updates/TLC3.0.2/?S=D +http://www.jobvillage.com/channel/jobs/administrative/mrd/courier/b.4728.g.3366.html +http://www.jobvillage.com/channel/jobs/administrative/mrd/shipping_clerk/b.4713.g.3366.html +http://quote.fool.com/simple.asp?symbols=NS +http://itcareers.careercast.com/texis/it/itjs/+NwwBmeIXD86dxwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewXhmoBGnaqdGpdGwBodDaqdMp1BnGadpnGwBodD5aMw55wqr15nBB5aqdGpdGwBnahoDwDqowcaMwocaBn5BoDtapGdxcnMaMFqhTfR20DzmetmwwwpBme_9D86eYmwww5rme1DwwwBrmeZpwww/jobpage.html +http://www.shopworks.com/index.cfm/action/info/userid/00066256-1160-19FE-A703010D0A0A8CF2 +http://isbn.nu/0716723212/fatbrain +http://isbn.nu/0716723212/amazon.ceo.html +http://ftp.nacamar.de/pub/NetBSD/NetBSD-current/pkgsrc/www/p5-URI/?N=D +http://213.36.119.69/do/session/152993/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/preparer/sante.htm +http://213.36.119.69/do/session/152993/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/jeux/jeux_himalaya.html +http://213.36.119.69/do/session/152993/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/DE_DE/ +http://www.linux.com/networking/network/support/open_source/investors/consulting/ +http://www.linux.com/networking/network/support/open_source/investors/research/ +http://sunsite.uakom.sk/doc/FAQ/alt-sex/fetish-fashion/?S=A +http://sunsite.uakom.sk/doc/FAQ/alt-sex/fetish-fashion/?D=A +http://phnet.tucows.com/winme/preview/75994.html +http://www.fivedoves.com/letters/june99/trish67.htm +http://www.teacherformation.org/html/od/facilitators.cfm/task1,about/discussion_id,2/xid,8571/yid,4064381 +http://pub24.ezboard.com/fnightmagicfrm1.showMessage?topicID=3.topic +http://infoserv2.ita.doc.gov/efm/efm.nsf/Sources!OpenView&Start=53.28&Count=30&Expand=54 +http://www.linux.com/networking/network/communications/management/windows_nt/website/ +http://www.linux.com/networking/network/communications/management/windows_nt/?kw_offset=50 +http://www.epinions.com/cmd-review-593A-C9BAC2B-3987B6DC-prod1 +http://www.bande-dessinee.org/bd/bd02.nsf/InterDescenaristes!OpenView&Start=1&Count=50&Collapse=51 +http://www.business-partner.ch/static/fr/pourlesfirmes/lesgrandesentreprises/whateveryouwant/solutionsspecifiquesalabranche/transport/main.html +http://ads.carltononline.com/accipiter/adclick/site=purejamba/area=JAMBA.HOME_PAGE/AAMSZ=KSJAMBA//ACC_RANDOM=972959547161 +http://expert.cc.purdue.edu/~yoko/simpsons/front.html +http://dailynews.sina.com.cn/society/2000-06-14/97332.html +http://ftp.dti.ad.jp/pub/Linux/debian-jp/dists/potato/main/binary-all/editors/?M=A +http://www.babyheirlooms.com/catalog/htmlos.cat/041124.1.5608817466 +http://www9.hmv.co.uk:5555/do/session/1347791/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d100_sd0_pt0.html +http://www.jobvillage.com/channel/jobs/health_care/pharmaceutical/pharmacist/b.3231.g.1267.html +http://yp.gates96.com/11/24/80/12.html +http://yp.gates96.com/11/24/80/18.html +http://yp.gates96.com/11/24/80/84.html +http://yp.gates96.com/11/24/80/90.html +http://yp.gates96.com/11/24/81/6.html +http://yp.gates96.com/11/24/81/9.html +http://yp.gates96.com/11/24/81/54.html +http://yp.gates96.com/11/24/81/74.html +http://yp.gates96.com/11/24/81/98.html +http://yp.gates96.com/11/24/82/17.html +http://yp.gates96.com/11/24/82/96.html +http://yp.gates96.com/11/24/83/54.html +http://yp.gates96.com/11/24/83/58.html +http://yp.gates96.com/11/24/84/44.html +http://yp.gates96.com/11/24/84/52.html +http://yp.gates96.com/11/24/84/63.html +http://yp.gates96.com/11/24/85/35.html +http://yp.gates96.com/11/24/85/77.html +http://yp.gates96.com/11/24/85/78.html +http://yp.gates96.com/11/24/87/15.html +http://yp.gates96.com/11/24/87/77.html +http://yp.gates96.com/11/24/88/0.html +http://yp.gates96.com/11/24/88/63.html +http://yp.gates96.com/11/24/89/93.html +http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/listUnseen/fol/100001/20,0/2498053 +http://www.zeenzone.com/movies/1,4003,1040-21565,00.html +http://www.zeenzone.com/movies/1,4003,1040-99354,00.html +http://www.zeenzone.com/movies/1,4003,1040-109493,00.html +http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/author/627181 +http://moshkow.rsl.ru/alt/MORUA/letters.txt +http://members.tripod.co.jp/muttley2000/?M=A +http://www.shopworks.com/index.cfm/action/specials/userid/000A8C31-2EFD-19FE-9038010B0A0ADCF2 +http://www.bookhome.net/xiandangdai/other1/chunjiang/006.html +http://www.bookhome.net/xiandangdai/other1/chunjiang/013.html +http://www.dailyrush.dk/clans/145 +http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/auto/0210/ +http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/brandenburg/0011/ +http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/lokales/0077/ +http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/lokales/0009/ +http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/lokales/0111/ +http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/lokales/0117/ +http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/lokales/0014/ +http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/sport/0018/ +http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/sport/0158/ +http://www.berlinonline.de/wissen/berliner_kurier/archiv/2000/0429/tv/0209/ +http://www.multicosm.com/facade/www.contigo.com/ +http://www.boston.digitalcity.com/cincinnati/health/conditions.dci?condition=sids +http://www.onlineathens.com/1998/041498/0414.a2zbriefs.html +http://ist.linux.tucows.com/conhtml/adnload/52224_1782.html +http://www.outpersonals.com/cgi-bin/w3com/pws/out/-2hIv4VApV7948YHO6tPdd62dgSdHSwg0xTrLhYidK4__IjhefvQTQrwpTMkkPdR5C5XRGbdA57_pJIxtMRvHJmrtjKdnzn_di6Er9p9vwIk1rLYwssqdvQbgeNAvSgd2M1a7O5NWleCth4ETxMfqPQS +http://www.outpersonals.com/cgi-bin/w3com/pws/out/VwhIXbmwUfG9PK362Tf07_xy8BQY7YBwNspFlCmPD_syQhuUcYEAU2eNoW3Liccn5fOj3JHbx2nCG9Tkl-PZwI9bR0uW5_3bO8O3kRwFm2Sp0E8MBNqJ9FvuLKt4pS_X3qzA8sbHcygn7lFrBe9ZZqi565Rs +http://www.crutchfield.com/cgi-bin/S-5ILchLS19Z9/auto.asp +http://www.quzhou.gov.cn/flfg.nsf/0a043ae26eb50247002564640039f21d/7cdda9dbc7e2b2bb002564ac00393b48!OpenDocument&ExpandSection=1,7,6 +http://opac.lib.ntnu.edu.tw/search*chi/m92+R627/m92+r627/-5,-1,0,B/buttonframe&F=m92+r449m&1,1 +http://www03.u-page.so-net.ne.jp/fc4/kazumasa/tdl/side2/side2.html +http://launchbase.com/Home/Personal_Organization/communication/information/Bank_Rates_&_Info.htm +http://launchbase.com/Home/Personal_Organization/communication/entertainment/Sports.htm +http://launchbase.com/Home/Personal_Organization/communication/shopping/Flowers.htm +http://launchbase.com/Home/Personal_Organization/communication/shopping/Pro-Audio.htm +http://www.nissan.co.jp/RENAULT-DEALERS/PASSPORT/view.cgi/admission/972959587-- +http://channel.nytimes.com/1998/10/15/technology/ +http://www.la.gunma-u.ac.jp/S97/thtml/m/kiso/41808.html +http://www1.ocn.ne.jp/~yaiba/_private/kobanasi/tyouhen/haraguroido/noroi.htm +http://www.duluxvalentine.com/FRANCE:1161209847:DFinity.1QJiP4jmPgipihoa +http://fi.egroups.com/messages/mediamalle-letter/6 +http://personal.wol.com.cn/lxz20a/gp13.htm +http://eclat.gaiax.com/www/eclat/y/k/yoko_mama/main.html +http://eclat.gaiax.com/www/eclat/y/k/yoko_mama/bbs.html +http://findmail.com/login.cgi?login_target=%2Fgroup%2Fohsama-iroiro +http://www.fogdog.com/cedroID/ssd3040183248487/crs/po__/wld/fogdog_sports/superfeet/outdoor/footwear/green_hi-profile.html +http://www.fogdog.com/cedroID/ssd3040183248487/nav/stores/baseball/ +http://www.fogdog.com/cedroID/ssd3040183248487/nav/stores/winter_sports/ +http://www.consource.com/members/signup/signup_temp_user.html?tAccountID=561 +http://213.36.119.69/do/session/152994/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/voit.htm +http://213.36.119.69/do/session/152994/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/BE_NL/ +http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdevelop/Attic/configure.in?r1=1.62&sortby=rev +http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdevelop/Attic/configure.in?annotate=1.53&sortby=rev +http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdevelop/Attic/configure.in?r1=1.46&sortby=rev +http://www.aelita.net/products/solutions/sitemap/Reg/QuoteRegister/solutions/products/default.htm +http://sunsite.org.uk/public/public/packages/pine/docs/?S=A +http://sunsite.org.uk/public/public/packages/pine/docs/QandA.txt +http://www.sfc.keio.ac.jp/~s98008na/miniproject/0.html +http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959867760/Catalog/1000023 +http://www.msn.expedia.co.uk/wg/Africa/Mauritius/P39048.asp +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/asiasanahaku/rakennesuunnittelu/talonrakennus/rakennukset/ohjeet/ +http://www.ericsson.cl/education/centers/dtmexic.shtml +http://ftp.gigabell.net/debian/dists/Debian2.2r0/main/binary-powerpc/web/?S=A +http://dirs.educationamerica.net/Colorado/Localities/C/Colorado_Springs/News_and_Media/Television/ +http://polygraph.ircache.net:8181/services/define/jeff/http_-2web01.hq.cyberserv.com/ryanhomes/http_-2www.travelsc.com/cgi-bin/news/NewsList.cfm?ID=1 +http://salinas2000.com/index.cfm/r/960/a/95.htm +http://213.36.119.69/do/session/152988/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www3.travelprice.com/voyages/recherche.phtml +http://213.36.119.69/do/session/152988/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/connaitre/questions-reponses.htm +http://ftp.cpan.org/src/5.0/sperl-2000-08-05/?D=A +http://virtualpubliclibrary.com/hallofanima/moresports/JOELOUIS.ORG//hallofanima/music/ +http://x500.rz.uni-karlsruhe.de:8000/Lcn%3dMonika%20Vogel,%20ou%3dPersonalabteilung,%20ou%3dUniversitaetsleitung%20und%20-verwaltung,%20o%3dUniversitaet%20Konstanz,%20c%3dDE +http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/korean/pine/files/patch-ai?only_with_tag=RELEASE_2_2_2 +http://ftp.ring.gr.jp/archives/XFree86/4.0.1/binaries/Linux-ix86-glibc21/RELNOTES +http://homepage1.nifty.com/SAKURAISANS/itoshi.html +http://www.expage.com/savetucker +http://ring.edogawa-u.ac.jp/archives/pack/os2/prog/rexx/?N=D +http://www.saarreisen.de/rueckel-reisen/fluege-buchen/barbados/reise-ibiza.htm +http://debian.linux.org.tw/debian/dists/sid/contrib/binary-powerpc/interpreters/?S=A +http://ricoh.co.jp/rtoss/School/other/other/lotus_syo/pg7.html +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus52213/eus52841/eus236353/eus591199/eus937052/ +http://www.mapion.co.jp/custom/AOL/admi/23/23101/higashiyamatori/4chome/index-17.html +http://stocks.tradingcharts.com/stocks/charts/swti-bb/w/javachart +http://ftp.univ-lyon1.fr/gnu/Manuals/diffutils-2.7/html_chapter/diff_15.html +http://www.elfoco.com/EL_Foco/CDA/PrintPage/1,2171,2_53_28444,00.html +http://www.debian.org.cn/Bugs/db/61/61000.html +http://www.debian.org.cn/Bugs/db/66/66591.html +http://www.debian.org.cn/Bugs/db/57/57112.html +http://www.gxrb.com.cn/26/tbzl.htm +http://opac.lib.rpi.edu/search/dyosemite+national+park+water+resources+development+research+california/-5,-1,0,E/2browse +http://ring.omp.ad.jp/pub/NetBSD/NetBSD-current/src/usr.sbin/dhcp/client/scripts/openbsd +http://attach1.egroups.com/attach/1087162/28/gs-108=71=1087162/10-1-10-160/application=octet-stream/IntOrganist.htm +http://www.brainerddispatch.com/stories/071299/obi_0712990015.shtml +http://webusers.siba.fi/doc/HOWTO/en-html/Multi-Disk-HOWTO-27.html +http://www.pressa.spb.ru/newspapers/nevrem/arts/nevrem-1667-art-30.html +http://www4.ocn.ne.jp/~l-tommy/C1024.html +http://pub13.ezboard.com/fsequelossavannasoftwaredevelopment.showMessage?topicID=74.topic +http://pub13.ezboard.com/fsequelossavannasoftwaredevelopment.showMessage?topicID=109.topic +http://www.z-plus.de/freizeit/kino/galerie/unhold/kritikdpa.html +http://www.tiscover.com/1Root/Kontinent/6/Staat/7/Bundesland/16/Ort/515/Privatvermieter/326225/Homepage/m_homepage...2.html +http://wap.jamba.de/KNet/_KNet-NKE8j1-2Gd-13c6l/showInfo-wir.de/node.0/cde7f1uou +http://www.refdag.nl/kl/990706kl02.html +http://www.ferien-immobilien.de/nordrhein-Westfalen/soest/Verkauf/Versteigerungen-IB/Startseite/Gemeinsam/versicherungen/gebaeude/Versteigerungen-IB/Startseite/Gemeinsam/Super-Zins-Konditionen/anforderungsformular.htm +http://caller-times.com/1999/september/18/today/local_sp/78.html +http://link.fastpartner.com/do/session/600350/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mondosoft.php +http://providenet.tukids.tucows.com/mac/9-12/adnload/11899_25711.html +http://providenet.tukids.tucows.com/mac/9-12/adnload/51475_24795.html +http://fivestar.subportal.com/sn/Network_and_Internet/Dial-up_Networking_Dialers/11735.html +http://www.kenley.londonengland.co.uk/newspaperandmagazinepublishers.htm +http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~C~013800~07790',00.html +http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~C~013800~54357',00.html +http://ftp1.support.compaq.com/public/vms/vax/v6.0/sls/2.6/?M=A +http://cpan.clix.pt/authors/id/I/IL/ILYAM/Mail-CheckUser-0.15.readme +http://www.maasvlakte-cam.nl/webcams/23/stavanger__norway/2000/10/12/?D=A +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/music/midi/computers/quizz/lit/arnheim.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/music/midi/computers/quizz/misc/colorart/ +http://www.taftp.com/A555D3/WebDir.nsf/MBC!OpenView&Start=89.2&Count=30&Expand=106 +http://jundavid.subportal.com/sn/Shell_and_Desktop/Animal_Cursors/11879.html +http://www.netitor.com/photos/schools/ucla/sports/m-wpolo/98-99action/?M=A +http://cpan.nitco.com/modules/by-module/Devel/MSCHWERN/Class-DBI-0.03.readme +http://cpan.nitco.com/modules/by-module/Devel/MSCHWERN/Text-Metaphone-0.02.readme +http://www.digitaldrucke.de/(aktuell,computer,gaestebuch,kino,literatur,nuernberg,rundfunk,sense,veranstaltungen,zeitschriften)/_fort/html/themen/kultur/literat/links/bin.htm +http://194.128.65.4/pa/cm199899/cmhansrd/vo990727/text/90727w01.htm +http://194.128.65.4/pa/cm199899/cmhansrd/vo990727/text/90727w15.htm +http://213.36.119.69/do/session/152989/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/jeux/jeux_himalaya.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/misc/quizz/lit/misc/cv.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/misc/quizz/lit/misc/lit/larme.html +http://www.hblb.org.uk/hblbweb.nsf/$Pages/NewsArchive1!OpenDocument&ExpandSection=6,7,3,5,1,8,11 +http://www.identer.co.kr/삶의여유/데이트정보/데이트정보/ +http://allmacintosh.arrakis.es/adnload/54801.html +http://link.fastpartner.com/do/session/600380/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/brleksaker.php +http://link.fastpartner.com/do/session/600380/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/local/redirect.php +http://icm.html.tucows.com/adnload/001-009-003-014.html +http://www.rakuten.co.jp/coffee/forum/forum-w.cgi?p=131&url=coffee +http://jxi.gov.cn/yw-cj001.nsf/6770fc9e7685796c482568c70008a30a!OpenView&Start=69&Count=30&Expand=70 +http://jxi.gov.cn/yw-cj001.nsf/6770fc9e7685796c482568c70008a30a!OpenView&Start=69&Count=30&Expand=72 +http://freehomepage.taconet.com.tw/This/is/taconet/top_hosts//tsyang/test9g.htm +http://www11.cplaza.ne.jp/babyweb/bbs/bdnm01/no33/130N.html +http://library.cuhk.edu.hk/search*chi/a憪���/a{213972}{213230}/-5,-1,0,B/frameset&F=a{213972}{213233}{215b34}&1,1 +http://library.cuhk.edu.hk/search*chi/a憪���/a{213972}{213230}/-5,-1,0,B/frameset&F=a{213972}{21323e}{213165}+1947&1,1 +http://library.cuhk.edu.hk/search*chi/a撱嗅ˊ,+904-975./a{213d32}{213877}++904++975/-5,-1,0,B/frameset&F=a{213d32}{213a67}{213779}{213455}+china+{215f7a}{213579}{213966}{21363e}{21435a}+{214241}{213c37}&1,1 +http://www.online.kokusai.co.jp/Service/V0043539/wrd/G200/service/service.html +http://quote.morningstar.com/Quote.html?ticker=GASFX +http://uoi.linux.tucows.com/x11html/adnload/9826_7194.html +http://dk.egroups.com/post/batoco?act=forward&messageNum=2017 +http://www.chaos.dk/sexriddle/b/h/l/o/h/ +http://www.picktips.com/category-1031-1174_1171_1170-4_3_2 +http://www.schmunzelecke.de/pic18.htm +http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chhand20.html +http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chhand25.html +http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chhand30.html +http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chimag16.html +http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chimag26.html +http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chlight3.html +http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chspec34.html +http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chspec35.html +http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chview15.html +http://sun1.rrzn-user.uni-hannover.de/zzzzgart/matlab/help/techdoc/umg/chvolvi5.html +http://www.t-onlien.de/dtag/mail/kontaktseite/1,3606,160,00.html +http://yumemi.ne.jp/bbs/hiroba/ky/view/h/hiroba3/8_wdsmcn_wdsmcn.html +http://yumemi.ne.jp/bbs/hiroba/ky/view/h/hiroba3/8_mrlinl_tcincn.html +http://yumemi.ne.jp/bbs/hiroba/ky/view/h/hiroba3/8_caouny_hixlcy.html +http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=20,9,13,16 +http://www.crn.com/sections/BreakingNews/breakingnews.asp?ArticleID=5760 +http://dennou-h.ees.hokudai.ac.jp/library/Linux/debian-jp/dists/hamm/main-jp/binary-all/tex/?M=A +http://www.cmyk21.com/photo1-3.htm +http://www.cs.ruu.nl/mirror/CPAN/modules/by-category/14_Security_and_Encryption/User/ILYAZ/images/?N=D +http://www.egroups.com/login.cgi?login_target=%2Fmessage%2FFloodsystems%2F45 +http://www.mirnet.org/ccsi/nisorgs/ukraine/kyiv/renaisnc.htm +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=231&discrim=2,125,10 +http://ring.omp.ad.jp/archives/lang/perl/CPAN/authors/id/BRADAPP/PodParser-1.17.readme +http://www.amzn.com.ref.digital-price.com/redir/amzn.com/prods/0553373730 +http://library.cwu.edu/search/dGermany+--+Politics+and+government+--+1918-1933/dgermany+politics+and+government+1918+1933/-5,-1,0,B/marc&F=dgermany+politics+and+government+1918+1933+bibliography&1,1, +http://www.multicosm.com/facade/www.unisys.com/partners/default.asp?cn=su +http://enjoy100.com.cn/200006/08/sssh/sssh_ssjp.html +http://enjoy100.com.cn/200006/08/yskj/b_s_big3_f.jpg.html +http://www.hoops.ne.jp/~zuikaku/photo2000/0811/rie11.html +http://pub23.ezboard.com/fiolaniy2kmessageboardfrm1.showMessage?topicID=66.topic +http://ring.htcn.ne.jp/archives/lang/perl/CPAN/modules/by-module/CGI/ULPFR/Wais-2.301.readme +http://www3.newstimes.com/archive99/mar1199/spg.htm +http://ftp1.support.compaq.com/public/vms/axp/v6.2-1h2/dsnlink/2.2/dsnlinkd022.CVRLET_TXT +http://ftp.nacamar.de/pub/redhat/cpan/6.2/CPAN-archive/doc/manual/html/pod/perldsc.html +http://ftp.nacamar.de/pub/redhat/cpan/6.2/CPAN-archive/doc/manual/html/pod/perlfaq5.html +http://info.cs.unitn.it/sdb/de/html/keylist.SOFTWARE.html +http://www.online.kokusai.co.jp/Mmf_corner/V0043545/mmf_corner/mmf_corner/url +http://www.office.com/global/0,2724,66-15915,FF.html +http://polygraph.ircache.net:8181/home/ISO9001.htm +http://www.allgemeine-immobilien-boerse.de/niedersachsen/emsland/Verkauf/Versteigerungen-IB/Startseite/Allgemeine-IB/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/hilfe.htm +http://launchbase.com/Health/Home_Health/communication/information/Science.htm +http://library.cwu.edu/search/aLockyer,+Norman,+Sir,+1836-1920/alockyer+norman+sir+1836+1920/-17,-1,0,B/frameset&F=alockwood+victoria+s+1953&1,1 +http://bbs.kcm.co.kr/NetBBS/Bbs.dll/chbod05/lst/qqa/r/qqo/004D/zka/B2-kCYFl +http://www.egroups.com/post/bhagavad_gita?act=forward&messageNum=101 +http://carriage.de/Schoner/Literatur/info-e/Geschichte/modelle/ +http://carriage.de/Schoner/Literatur/info-e/Geschichte/history/ +http://carriage.de/Schoner/Literatur/info-e/Geschichte/literature/ +http://wwwftp.ciril.fr/pub/linux/kernel///people/andrea/kernels +http://www.inctechnology.com/guide/item/0,7462,AGD6_GDE79,00.html +http://live.sportsline.com/u/basketball/college/teams/injuries/VATECH.htm +http://www-1.cisco.com/univercd/cc/td/doc/product/lan/28201900/1928v67x/28icg67x/28icpref.pdf +http://www.hitlist.com/music/presult/003948.php3 +http://ip.tosp.co.jp/Eki/TosiE000.asp?I=Jerryfish +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=(20,0)-16,0-9,2 +http://www.bigchurch.com/cgi-bin/w3com/pws/bc/RLhIotYxW-B0bt7seq4d876RzKIuJDYbydJP1qooxhzSKDVca77BUHQv6tsO2JdNpkx837SBl7FHRIEy00rmcLBk9Y1kQEmni0_YSk5mrym8WALtovIPQU_vlEtiMcNswNyh9z6CjU-2oS2uurrk666t +http://www.secinfo.com/d2wVq.7hv.htm +http://www.secinfo.com/d2wVq.6yd.htm +http://www.secinfo.com/d2wVq.6Y5.htm +http://www.secinfo.com/d2wVq.5gf.htm +http://www.secinfo.com/d2wVq.5hp.htm +http://www.secinfo.com/d2wVq.5y4.htm +http://ring.htcn.ne.jp/pub/text/CTAN/graphics/psfig/unsupported/macdemo/macfigs/?N=D +http://ring.htcn.ne.jp/pub/text/CTAN/graphics/psfig/unsupported/macdemo/macfigs/?M=A +http://books.hyperlink.co.uk/xt2/Drakelow_Unearthed/Stokes/Paul/0904015408 +http://www.homestead.com/rebeccah/files/ +http://sunsite.compapp.dcu.ie/pub/linux/redhat/redhat-6.1/alpha/usr/share/locale/ga_IE/LC_TIME +http://www.gbnf.com/genealogy/rockwel4/html/d0037/I2684.HTM +http://www.yorosiku.net:8080/-_-http://www.dd.iij4u.or.jp/~oni9/skebe/aindex18.html +http://www.yorosiku.net:8080/-_-http://www.dd.iij4u.or.jp/~oni9/skebe/aindex12.html +http://www.yorosiku.net:8080/-_-http://www.dd.iij4u.or.jp/~oni9/skebe/atg05.html +http://shn.webmd.net/content/article/1700.50808 +http://home.clara.net/cornell/woodcraft/spring2000/contents.htm +http://dic.empas.com/show.tsp/EDACITY +http://www.sanxia.net/beauty/Eriimai/417.htm +http://www.judds-resort.com/judds/Lake-Winni-pike-lodge/97menu/fallphoto/playground/boat/photo/12.html +http://www.judds-resort.com/judds/Lake-Winni-pike-lodge/97menu/fallphoto/playground/boat/fallphoto/2.html +http://imageserver2.tibetart.com:8087/fif=fpxbuddhistreverse/56.fpx&init=0.0,0.0,1.0,1.0&rect=0.0,0.25,0.5,0.75&wid=1443&hei=400&lng=en_US&enablePastMaxZoom=OFF&page=image.html&obj=uv,1.0&cmd=W +http://www.jamba.nl/KNet/_KNet-krE8j1-KC4-pv5y/showInfo-hilfe.nl/node.0/ce6u2jadf +http://www.babyheirlooms.com/catalog/htmlos.cat/011639.1.3372173854 +http://community.webshots.com/photo/441160/441363 +http://www.kaos.dk/sexriddle/x/n/d/x/b/ +http://isbn.nu/088730866X/chapters +http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1992-93/AUS_LOCAL/MMC/WA_NSW_MMC_11OCT1992.html +http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1991-92/AUS_LOCAL/FAI/WA_TAS_FAI_11OCT1991.html +http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1991-92/AUS_LOCAL/FAI/WA_QLD_FAI-SEMI_19OCT1991.html +http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1980S/1987-88/AUS_LOCAL/MDC/WA_SOA_MDC_06MAR1988.html +http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1980S/1981-82/AUS_LOCAL/MDC/QLD_WA_MDC_08NOV1981.html +http://www.chaos.dk/sexriddle/x/k/l/y/h/ +http://tucows.teihal.gr/winnt/preview/6004.html +http://tucows.teihal.gr/winnt/preview/5986.html +http://tucows.teihal.gr/winnt/preview/71328.html +http://tucows.teihal.gr/winnt/preview/2757.html +http://www.medoc-ias.u-psud.fr:81/synoptic/gif/950724/?N=D +http://www4.nas.edu/ohr.nsf/All+Documents/Major+Units?OpenDocument&ExpandSection=18,7,21,20,4 +http://members.xoom.fr/logart/Anciens/Liste25/Selection_Navlist25.html +http://polygraph.ircache.net:8181/http_-2www.arthritis.org/http_-2pathfinder.com/si/swimsuit/swim97/terms2.html +http://polygraph.ircache.net:8181/http_-2www.arthritis.org/http_-2pathfinder.com/si/swimsuit/swim97/products2.html +http://debian.linux.org.tw/debian/dists/Debian2.2r0/main/disks-m68k/current/doc/ +http://findmail.com/dir/Arts/Writing/Fan_Fiction?st=1943 +http://www.telecombroker.com/q/001p/tgcb/4izQYz7mc.htm +http://www.free-phone.com/q/001p/tgcb/ItMd2D3jdEM.htm +http://www.123bestlongdistance.com/q/001p/tgcb/msN54jfl4mE.htm +http://www.netitor.com/photos/schools/nw/sport/w-baskbl/97action/?S=A +http://excite.de/katalog/katalog/33823 +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/programs/simple/music/midi/lit/misc/unitest/programs/ +http://yp.gates96.com/14/43/40/9.html +http://yp.gates96.com/14/43/40/43.html +http://yp.gates96.com/14/43/40/82.html +http://yp.gates96.com/14/43/40/85.html +http://yp.gates96.com/14/43/41/6.html +http://yp.gates96.com/14/43/41/18.html +http://yp.gates96.com/14/43/41/44.html +http://yp.gates96.com/14/43/41/96.html +http://yp.gates96.com/14/43/42/12.html +http://yp.gates96.com/14/43/46/38.html +http://yp.gates96.com/14/43/46/66.html +http://yp.gates96.com/14/43/46/68.html +http://yp.gates96.com/14/43/47/4.html +http://yp.gates96.com/14/43/47/37.html +http://yp.gates96.com/14/43/47/64.html +http://yp.gates96.com/14/43/47/68.html +http://yp.gates96.com/14/43/47/70.html +http://yp.gates96.com/14/43/48/68.html +http://yp.gates96.com/14/43/48/69.html +http://yp.gates96.com/14/43/49/7.html +http://yp.gates96.com/14/43/49/36.html +http://yp.gates96.com/14/43/49/37.html +http://yp.gates96.com/14/43/49/52.html +http://sound-dist.secured.co.uk/cgi-bin/psProdDet.cgi/5P005|972959562|Accessories|user|0|1,0,0,1 +http://school.educities.org/card/judy180.html +http://207.138.41.133/message/the-voice1/123 +http://207.138.41.133/message/the-voice1/124 +http://www-d0.fnal.gov/d0dist/dist/releases/p05.00.00/muo_analyze/?S=A +http://sjsulib1.sjsu.edu:81/search/cernest+haberkern+director/-5,-1,0,B/frameset&cgeorge+miller+director&1,1 +http://ring.nii.ac.jp/pub/pack/x68/net/00_index.txt +http://pub24.ezboard.com/fdoyoustillneedtoventfrm43.showMessage?topicID=19.topic +http://pub24.ezboard.com/fdoyoustillneedtoventfrm43.showMessage?topicID=15.topic +http://ukinvest.ukwire.com/articles/200007200700261473O.html +http://www.brd.net/brd-cgi/brd_multimedia/lautsprecher/LZ7460LK/ci=972822952.htm +http://my.netian.com/~haeng14/tatler_july6.htm +http://genforum.genealogy.com/cgi-genforum/forums/anderton.cgi?122 +http://www.excelsior.com.mx/0001/000125/for03.html +http://www.jobvillage.com/channel/jobs/sciences/b.9070.g.1675.html +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/www/contact.html?annotate=1.19&sortby=author +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/www/contact.html?r1=1.12&sortby=author +http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/1998-99/jmc1/labs/Ex06/skw98/?N=D +http://www.jamba.de/KNet/_KNet-fNw8j1-6Fd-13acp/browse.de/node.0/cde7f1uou +http://www.jamba.de/KNet/_KNet-fNw8j1-6Fd-13act/browse.de/node.0/cdel3j591 +http://www.nedstat.nl/cgi-bin/viewstat?name=mrbertmat +http://no.egroups.com/message/acessibilidade/1092 +http://no.egroups.com/message/acessibilidade/1099 +http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|38P08A|972959552|Communications|user|0|1,0,0,1 +http://213.36.119.69/do/session/152990/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/spectacles/ +http://213.36.119.69/do/session/152990/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/CA_EN/ +http://wiki2.parsimony.net/wiki2954/ +http://www.f2.parsimony.net/forum2954/messages/214.htm +http://www.f2.parsimony.net/forum2954/messages/181.htm +http://www.f2.parsimony.net/forum2954/messages/292.htm +http://www.f2.parsimony.net/forum2954/messages/115.htm +http://www.f2.parsimony.net/forum2954/messages/290.htm +http://www.f2.parsimony.net/forum2954/messages/54.htm +http://home.pchome.com.tw/cool/162203/wunew15.htm +http://hem.fyristorg.com/lottaleman/LLfar/1_6721.htm +http://www.babyheirlooms.com/catalog/htmlos.cat/011628.1.4596216338 +http://www.affiliate.hpstore.hp.co.uk/do/session/380833/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/search.asp +http://www.outdoorwire.com/content/lists/dirt/200007/msg00127.html?{LoadingFrameset} +http://adept.subportal.com/sn/Programming/ActiveX/11674.html +http://www.staroriental.net/nav/soeg/ihf,aog,s0,10,Lam+Hei-Lui.html +http://www-d0.fnal.gov/d0dist/dist/releases/p05.00.01/man/?N=D +http://members.tripod.com/bluti/PSX/V/VACUUM.HTM +http://connexus.tucows.com/winme/adnload/138384_29728.html +http://wwwtios.cs.utwente.nl/archive/wilyfans/msg00265.html +http://custom.clubnet.zeelandnet.nl/eckhardt/myself.htm +http://ftp.tokyonet.ad.jp/pub/Linux/debian/dists/potato/contrib/binary-arm/otherosfs/?D=A +http://www.amcity.com/charlotte/stories/1997/07/07/daily4.html?t=email_story +http://www.generation-formation.fr/chiffrec.htm---o21zAo0UbDo0Ol9A074fo6Td4ezyr6feZJPAPfVbNyqHSezTHkekydMfeZJPdspt6dsSAtdsNhJdspt6dsrvrdjlhkfbi.htm +http://tv.thevines.com/leaf/AA0000369140/2 +http://kuyper.calvin.edu/fathers2/NPNF2-02/Npnf2-02-06.htm +http://www.intellicast.com/Ski/World/UnitedStates/Southeast/Florida/FortWaltonBeach/TEMPcast/d0_12/ +http://stevebarnes.studiostore.com/aboutus/b.EMERCH/s.P01EBK2I +http://student.monterey.edu/Students_N-R/richterheidil/private/ +http://ds.dial.pipex.com/town/drive/kch36/select/s30/ch052.html +http://ds.dial.pipex.com/town/drive/kch36/select/s30/ch027.html +http://ds.dial.pipex.com/town/drive/kch36/select/s30/ch077.html +http://ds.dial.pipex.com/town/drive/kch36/select/s30/ch092.html +http://soneraplaza.tucows.com/winme/adnload/137026_28536.html +http://www.egroups.com/post/realtyindia +http://www.kita.or.kr/untpdc/incubator/zwe/tphar/ZIMB0037.htm +http://citeseer.nj.nec.com/nrelated/126165/187254 +http://citeseer.nj.nec.com/cachedpage/187254/1 +http://citeseer.nj.nec.com/cidcontext/2417551 +http://yp.gates96.com/13/6/1/36.html +http://yp.gates96.com/13/6/1/61.html +http://yp.gates96.com/13/6/1/83.html +http://yp.gates96.com/13/6/1/91.html +http://yp.gates96.com/13/6/3/39.html +http://yp.gates96.com/13/6/3/45.html +http://yp.gates96.com/13/6/3/65.html +http://yp.gates96.com/13/6/4/46.html +http://yp.gates96.com/13/6/4/57.html +http://yp.gates96.com/13/6/5/44.html +http://yp.gates96.com/13/6/6/21.html +http://yp.gates96.com/13/6/6/42.html +http://yp.gates96.com/13/6/7/0.html +http://yp.gates96.com/13/6/7/30.html +http://yp.gates96.com/13/6/7/69.html +http://yp.gates96.com/13/6/7/82.html +http://yp.gates96.com/13/6/8/5.html +http://yp.gates96.com/13/6/8/98.html +http://yp.gates96.com/13/6/9/45.html +http://home.wanadoo.nl/hockeyclub.nieuwegein/Teams/Dames/Dames_IV/body_dames_iv.html +http://pub3.ezboard.com/fthe4thdimensiongeneralinsanity.subscribeUnregisteredToTopic?topicID=38.topic +http://pub3.ezboard.com/fthe4thdimensiongeneralinsanity.unsubscribeUnregisteredToTopic?topicID=38.topic +http://moviestore.zap2it.com/help_shipping/s.hXCLyc56 +http://www.geocities.co.jp/Outdoors/2363/typoon1.html +http://ua.php.net/manual/it/function.pg-numrows.php +http://kidneyfailure.shn.net/roundtable_reply/727640 +http://itcareers.careercast.com/texis/it/itjs/+HwwBmje0B-deZqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewyPxGwproqamn5otDnGaoDm15BGowcamn5otDapGdm1qBamnVncdpa5dhBiwGna5BGwBnton5ah1DqBodDanD51GnaMFqnFZI0DzmzwwwpBmje0B-deZqwww5rmeZpwwwBrmeZpwww/morelike.html +http://itcareers.careercast.com/texis/it/itjs/+lwwBmex6D86egqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewyPxGwproqamn5otDnGaoDm15BGowcamn5otDapGdm1qBamnVncdpa5dhBiwGna5BGwBnton5ah1DqBodDanD51GnaMFqnFZI0DzmzwwwpBmje0B-deZqwww5rmeacwwwBrmeZpwww/morelike.html +http://pub23.ezboard.com/fhardoverclockfrm1.showAddReplyScreenFromWeb?topicID=43.topic&index=3 +http://www.adquest3d.com/content.cfm?BRD=1578&PAG=63 +http://pelit.saunalahti.fi/.1/tucows/adnload/51_28438.html +http://pelit.saunalahti.fi/.1/tucows/preview/70307.html +http://www.maillist.com.tw/maillist/publicboard_newform.pl?maillist_id=softuse +http://dennou-t.ms.u-tokyo.ac.jp/arch/cc-env/Linux/debian-jp/dists/woody/non-free-jp/binary-alpha/news/?M=A +http://ustlib.ust.hk/search*chi/amarcot+bruce+g/amarcot+bruce+g/-5,-1,0,B/frameset&F=amarcotty+michael+1931&1,1 +http://wine.cc.chuo-u.ac.jp/home/pub/TeX/CTAN/support/rtf2tex/?M=A +http://netchief.tucows.com/winme/preview/75911.html +http://yp.gates96.com/4/57/60/83.html +http://yp.gates96.com/4/57/60/99.html +http://yp.gates96.com/4/57/62/17.html +http://yp.gates96.com/4/57/62/88.html +http://yp.gates96.com/4/57/63/9.html +http://yp.gates96.com/4/57/63/39.html +http://yp.gates96.com/4/57/63/64.html +http://yp.gates96.com/4/57/64/33.html +http://yp.gates96.com/4/57/65/41.html +http://yp.gates96.com/4/57/65/70.html +http://yp.gates96.com/4/57/66/18.html +http://yp.gates96.com/4/57/66/56.html +http://yp.gates96.com/4/57/66/61.html +http://yp.gates96.com/4/57/66/94.html +http://yp.gates96.com/4/57/67/0.html +http://yp.gates96.com/4/57/67/63.html +http://yp.gates96.com/4/57/67/85.html +http://yp.gates96.com/4/57/69/1.html +http://yp.gates96.com/4/57/69/56.html +http://citeseer.nj.nec.com/cs?q=dbnum%3D1,DID%3D9262,qtype%3Dsamesite: +http://citeseer.nj.nec.com/cidcontext/163444 +http://www.amazon.com.au/exec/obidos/change-style/tg/stores/detail/-/books/0873995562/e-mail-friend/ +http://www.sdinfonet.com.cn/411/24/411249999.htm +http://pub14.ezboard.com/fallpodsgotoroswellsayhello.threadControl?topicID=17.topic +http://in.egroups.com/message/sexualidades-noticias/14 +http://in.egroups.com/message/sexualidades-noticias/37 +http://library.cuhk.edu.hk/search*chi/dChinese+literature+--+20th+century+--+Periodicals/dchinese+literature+++20th+century+periodicals/-5,-1,0,B/frameset&F=dchinese+literature+++20th+century+periodicals&26,,188 +http://www.3w-zeitschriften.de/EyreLinda/EyreLinda1582380570.htm +http://cometweb01.comet.co.uk/do!session=132027&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkjHfZoLlplLcqkKZljLlfb5lal5tkiLlXaLl0 +http://retailer.gocollect.com/do/session/1912774/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/contact.asp +http://providenet.games.tucows.com/adnload/71993_40744.html +http://www.geocities.co.jp/playtown-Toys/6366/bbsp.html +http://www.hnby.com.cn/docroot/jzrb/200001/19/km01/19031711.htm +http://213.36.119.69/do/session/152997/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/IT_IT/ +http://www.jamba.de/KNet/_KNet-p7t8j1-FEd-139gj/showInfo-datenschutz.de/node.0/cde7f1uou +http://www.jamba.de/KNet/_KNet-p7t8j1-FEd-139gn/browse.de/node.0/cdzqggtyb +http://www.paidmania.com/getpaid/signup/42/2518 +http://www.pressa.spb.ru/newspapers/nevrem/arts/nevrem-1679-art-13.html +http://jproxy.uol.es/jproxy/http://jama.ama-assn.org/issues/current/related/joc00479.html +http://www.mirror.kiev.ua:8082/paper/2000/11/1251/text/11-08-2.htm +http://my.netian.com/~eco71/wzmain.html +http://www.craft-supplies.co.uk/cgi-bin/psProdDet.cgi/HT206|972959540|Deluxe_Dividers|user|0|0,0,1,1 +http://www.trax.nilex.co.uk/trax.cgi/A1S/1AR/A3R/B3D/A4R/A4S/ +http://www.linux.com/networking/network/network/development/project/growth/ +http://www.linux.com/networking/network/development/project/growth/sales/ +http://www.icopyright.com/1.1653.134616 +http://retailer.gocollect.com/do/session/1912718/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/about.asp +http://www.dw-tv.de/indonesia/sari_pers/19793.html +http://freethemes.netc.pt/skins/icq/preview/44470.html +http://freethemes.netc.pt/skins/icq/adnload/26145.html +http://freethemes.netc.pt/skins/icq/preview/52524.html +http://freethemes.netc.pt/skins/icq/adnload/52040.html +http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=7,18,9,16 +http://golfonline.comfluent.net/cgi.pan$player&pga93&John_Morse&pga?golfstats +http://wai.camera.it/_presidenti/003.htm +http://www.pcmagazine.de/produkte/artikel/komp/200003/mainboards01_00-wc.html +http://www.pcmagazine.de/produkte/artikel/komp/199908/asus_00-wc.html +http://se.sslug.dk/emailarkiv/locale/2000_09/msg00053.html +http://se.sslug.dk/emailarkiv/locale/2000_09/msg00057.html +http://se.sslug.dk/emailarkiv/locale/2000_09/msg00115.html +http://www.brio.de/BRIO.catalog/39fe2f7406fad828273fd472aa7806ff/UserTemplate/8 +http://link.fastpartner.com/do/session/600389/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/jobpilot.php +http://www.shopworks.com/grizzlygulch/index.cfm/action/search/userid/000B40E3-1177-19FE-A703010D0A0A8CF2 +http://www.shopworks.com/grizzlygulch/index.cfm/action/product/prodid/0001AF94-3FC3-19E7-A703010D0A0A8CF2/userid/000B40E3-1177-19FE-A703010D0A0A8CF2 +http://spiritwolf52.subportal.com/sn/Web_Authoring/Misc__Programming_Tools/2670.html +http://www.chaos.dk/sexriddle/o/g/j/h/t/ +http://link.fastpartner.com/do/session/600394/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/learn/ +http://opac.lib.rpi.edu/search/dpolitical+corruption+united+states/-5,-1,0,B/frameset&dpolitical+corruption+united+states&7,,22 +http://cnnsi.com/baseball/mlb/news/2000/01/28/ +http://amrr.com/agents/contact.html?Agents_id=3707 +http://www.dulux.co.uk/UKRETAIL:1489107816:DFinity.1QJiP4jMomdkbEc +http://www.geocities.com/SiliconValley/Screen/9059/ +http://www.nrk.no/finnmark/x17_4_96/nyh4.htm +http://in.egroups.com/message/islaam/288 +http://www.incestpornstories.com/knocked-upepisiotomy/fertileoff-the-rag/one-night-standlubrication/japaneseslanted-eyes/{storieslink} +http://kuyper.calvin.edu/fathers2/ANF-04/anf04-30.htm +http://wuarchive.wustl.edu/systems/unix/NetBSD/NetBSD-release/src/sys/arch/sun3/stand/bootxx/ +http://polygraph.ircache.net:8181/services/define/noframes/http_-2www.microsoft.com/ie/download/http_-2www.microsoft.com/infoserv/about.html +http://pub23.ezboard.com/fferion80369frm4.showMessage?topicID=192.topic +http://pub23.ezboard.com/fferion80369frm4.showMessage?topicID=182.topic +http://www.cs.ruu.nl/mirror/CPAN/authors/id/N/NO/?S=A +http://yp.gates96.com/1/40/30/16.html +http://yp.gates96.com/1/40/30/72.html +http://yp.gates96.com/1/40/30/99.html +http://yp.gates96.com/1/40/31/25.html +http://yp.gates96.com/1/40/31/42.html +http://yp.gates96.com/1/40/31/54.html +http://yp.gates96.com/1/40/31/61.html +http://yp.gates96.com/1/40/31/95.html +http://yp.gates96.com/1/40/32/39.html +http://yp.gates96.com/1/40/32/88.html +http://yp.gates96.com/1/40/32/92.html +http://yp.gates96.com/1/40/33/33.html +http://yp.gates96.com/1/40/34/24.html +http://yp.gates96.com/1/40/34/51.html +http://yp.gates96.com/1/40/34/62.html +http://yp.gates96.com/1/40/34/72.html +http://yp.gates96.com/1/40/35/38.html +http://yp.gates96.com/1/40/36/80.html +http://yp.gates96.com/1/40/36/98.html +http://yp.gates96.com/1/40/37/35.html +http://yp.gates96.com/1/40/37/89.html +http://yp.gates96.com/1/40/38/13.html +http://yp.gates96.com/1/40/38/67.html +http://yp.gates96.com/1/40/39/8.html +http://yp.gates96.com/1/40/39/11.html +http://yp.gates96.com/1/40/39/42.html +http://netway.pda.tucows.com/palm/preview/33466.html +http://netway.pda.tucows.com/palm/preview/70276.html +http://netway.pda.tucows.com/palm/adnload/76963_22012.html +http://netway.pda.tucows.com/palm/preview/33676.html +http://www.private-immobilien-boerse.de/berlin-immobilien/verkauf/Private-IB/Startseite/Gemeinsam/versicherungen/gebaeude/Gemeinsam/Immolink/Gemeinsam/Super-Zins-Konditionen/anforderungsformular.htm +http://www.ne.jp/asahi/matinami/gallery/mati/hokkaido/hakodate/ph_l011.html +http://www.findarticles.com/cf_0/m0EKF/14_46/61415465/p1/article.jhtml +http://www.trax.nilex.co.uk/trax.cgi/A1C/A2S/B1S/B1L/B4S/A1S/ +http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=1,21,16,5 +http://students.lsu.edu/students/main.nsf/c81d2bf8cb0b80ff862566fb00105ab2/7f3436ae9cb1268886256773006f9288!OpenDocument&ExpandSection=18,21,16,5 +http://ddb.libnet.kulib.kyoto-u.ac.jp/exhibit/fl3/image/fl3lhf/fl3lh0344.html +http://www.trnonline.com/archives/2000archives/04072000/sports/26732.shtml +http://www.linux.com/networking/network/new/press_release/management/editor/ +http://www.linux.com/networking/network/new/press_release/management/experiences/ +http://jundavid.subportal.com/sn/Business/Misc__Phone_Tools/index3.html +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=27,9,23,14,19 +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/music/misc/thoughts/lit/music/midi/mirroring.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/music/misc/thoughts/lit/music/midi/legendes/ +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/music/misc/thoughts/lit/music/midi/lit/laurent.txt +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/music/misc/thoughts/lit/music/midi/misc/colorart/ +http://www.lz.gs.cninfo.net/news/shenghuo/messages/361.html +http://www.egroups.com/messages/skarmflyg/683 +http://www.egroups.com/message/skarmflyg/675 +http://www.egroups.com/message/skarmflyg/681 +http://www.genoma.de/shop/0d79e8c12cc42ea8242eafc8a0c5586a/99/b +http://travelocity-dest.excite.com/Vacations/Reviews/Cruise/Submit/1,2586,0_228__,00.html +http://www02.geocities.co.jp/HeartLand-Sakura/1068/history.html +http://www.streetprices.com/Electronics/Computer_Software_PC/Programming/MAKE+DIGITAL/sortproductbyhighprice/SP275945.html +http://www.streetprices.com/Electronics/Computer_Software_PC/Programming/MAKE+DIGITAL/sortproductbyhighprice/SP246217.html +http://www.emerchandise.com/help_privacy/b.TV%20SATNIGHTLIVE/s.BOkfj8Vk +http://ftp.ccu.edu.tw/pub/documents/faq/mail/setup/?S=A +http://iceberg.adhomeworld.com/cgi-win/redirect.exe/304063772 +http://pdacentral.zeelandnet.nl/rim/email_license.htm +http://pdacentral.zeelandnet.nl/rim/adnload/139471_47673.html +http://www.loisirs.ch/tfhglx/17/ltxeld.html +http://au.yahoo.com/Business_and_Economy/Shopping_and_Services/Health/Providers/By_Region/U_S__States/Mississippi/Cities/ +http://sound-dist.secured.co.uk/cgi-bin/psProdDet.cgi/15P02A|972959527|Helmet|user|0|1,0,0,0 +http://news.dreamwiz.com/news_lg/04/20001030/yonhap/200010301014041007292.html +http://news.dreamwiz.com/news_lg/04/20001028/yonhap/ +http://pds.nchu.edu.tw/cpatch/ftp/ftpnav/?D=A +http://members.tripod.lycos.co.kr/BONGBAE/?N=D +http://www9.hmv.co.uk:5555/do/session/1347758/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d50_sd0_pt0.html +http://itcareers.careercast.com/texis/it/itjs/+xwwBmeHWD86YwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewDhmoBGnaqdGpdGwBodDarGo5awDwcO5Baiw5roDtBdDaGn31n5BaGn31oGnmamnVncdpar1MwDaGn5d1Gqn5aMFqhTfR20DzmehrwwwpBmefWD86mwww5rmeddwwwBrmeZpwww/morelike.html +http://www.3w-buecher.de/GibbonsRob/GibbonsRob1572152214.htm +http://sennka.hoops.livedoor.com/%91%90%8a%a0%93%fa%98a%81%f4.htm +http://www.uni-duesseldorf.de/ftp/ftp/pf/s/netscape-v451/?S=A +http://www.outpersonals.com/cgi-bin/w3com/pws/out/0nhIQeA1Kelaujy0pUaBOo2AAoNruJ7MPpvxwl5qu-YeCeEn6SDc5vURHb5rk8dZP84c_4bSWkIDaPe8dCV5mfxj4LA69UDbXc_J2Z-eZg7dURZLZinceqCXYFUYC4pqT29R1BQKpdPvHP0APgIYRhQG +http://208.178.109.85/msgshow.cfm/msgboard=4779506785434&msg=80064825094809&page=1&idDispSub=-1 +http://interbox.tucows.com/preview/61367.html +http://www.crutchfield.com/cgi-bin/S-CI62JsDkHYX/viewcart.asp +http://www.hig.se/(aconf,formoutput,if,modified,set_cookie)/~jackson/roxen/ +http://www.trax.nilex.co.uk/trax.cgi/A1C/1AS/B1D/A3L/A1S/1AR/ +http://www.trax.nilex.co.uk/trax.cgi/A1C/1AS/B1D/A3L/A1S/C1R/ +http://www.trax.nilex.co.uk/trax.cgi/A1C/1AS/B1D/A3L/A1S/B4L/ +http://www.haikou.hi.cn/pandect/nj/n96ei3.htm +http://se.egroups.com/message/dailydreamers/36 +http://sunsite.org.uk/Mirrors/ftp.cdrom.com/pub/linux/slackware/contrib/contrib-sources/gcc-2.7.2.3/ +http://hp-partner.whowhere.lycos.com/hp/excite/Online_Communities/Angelfire/wi/index9.html +http://www.cse.unsw.edu.au/archives/linux/redhat/beta/?M=A +http://www.webcrawler.com/entertainment/music/artists_and_genres/folk_and_acoustic/artists_s/simon_and_garfunkel/garfunkel_art/interviews/ +http://www.russ.ru:8081/journal/media/98-05-21/telen0.htm +http://www.chaos.dk/sexriddle/x/r/k/o/w/ +http://www.jt.com.br/noticias/98/06/22/sd2.htm +http://retailer.gocollect.com/do/session/1912734/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/gifts/gift_floor.asp +http://www.ualberta.ca/CNS/RESEARCH/Software/SAS/gis/z0782606.htm +http://www.sentientnet.com/univercd/cc/td/doc/product/rtrmgmt/bluelist/cwblue21/cwbwsug/features.htm +http://pub5.ezboard.com/fthekojiroestrogenbrigadeconsolegaming.threadControl?topicID=16.topic +http://www.zjrs.zei.gov.cn/economy/text/policy/LHB/LHBA0909.TXT +http://seascape.tucows.com/winnt/adnload/2060_29646.html +http://seascape.tucows.com/winnt/adnload/2063_29648.html +http://seascape.tucows.com/winnt/adnload/2066_29651.html +http://ben.aspads.net/ex/c/641/517693268 +http://yp.gates96.com/7/63/80/20.html +http://yp.gates96.com/7/63/80/22.html +http://yp.gates96.com/7/63/80/80.html +http://yp.gates96.com/7/63/80/87.html +http://yp.gates96.com/7/63/81/50.html +http://yp.gates96.com/7/63/81/77.html +http://yp.gates96.com/7/63/81/79.html +http://yp.gates96.com/7/63/81/91.html +http://yp.gates96.com/7/63/82/36.html +http://yp.gates96.com/7/63/82/73.html +http://yp.gates96.com/7/63/84/6.html +http://yp.gates96.com/7/63/84/91.html +http://yp.gates96.com/7/63/85/30.html +http://yp.gates96.com/7/63/85/57.html +http://yp.gates96.com/7/63/85/98.html +http://yp.gates96.com/7/63/89/13.html +http://yp.gates96.com/7/63/89/20.html +http://yp.gates96.com/7/63/89/32.html +http://yp.gates96.com/7/63/89/65.html +http://www.rarf.riken.go.jp/archives/tex-archive/macros/latex//contrib/supported/linguex/?M=A +http://members.tripod.com/shelly34/shellyphotos/page12.html +http://ftp.nsysu.edu.tw/Unix/Perl/modules/by-category/23_Miscellaneous_Modules/Bundle/PlRPC-0.2003.readme +http://www.affiliate.hpstore.hp.co.uk/do/session/380827/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/vacationcards.asp +http://www.marktplatz-hs.de/cgi-bin/ChioEditionShop.s/39fe2ee3005fd9642740d47540f806e1/IconBar +http://home.sprynet.com/~keithco/london.htm +http://earth.collectingnation.com/cgi-bin/bn/post.mod/aupn?B=cna&R=48 +http://earth.collectingnation.com/cgi-bin/bn/post.mod/aupn?B=cna&R=38 +http://www.realize.com/am747b81.htm,qt=e784fe2f=2a38a234-e-1adebfb-80000000-0-0-3-- +http://www.opengroup.com/dfbooks/009/0091856140.shtml +http://www.egroups.org/message/fotografya/216 +http://www.cn.informatik.fh-furtwangen.de/studenten/dv_labor/onlinebuecher/php/function.yaz-errno.html +http://www.cn.informatik.fh-furtwangen.de/studenten/dv_labor/onlinebuecher/php/function.yaz-hits.html +http://www.cn.informatik.fh-furtwangen.de/studenten/dv_labor/onlinebuecher/php/function.yaz-wait.html +http://www.catholicstore.com/search/index.cfm/FuseAction/detailSearch/SKU/17311/category/Bo/subCategory/G/subject/1 +http://www.cc.ntut.edu.tw/~584ce040/anne-1.htm +http://www.intervoz.com.ar/2000/09/23/sociedad_n11.htm +http://pub22.ezboard.com/frecipegoldminesharearecipe.showAddReplyScreenFromWeb?topicID=4.topic +http://opencity.kulichki.ru/moshkow/PROZA/LIPSKEROV/okno.txt +http://www.tccomputers.com/cgi-bin/bp/1021890426/products/modems/modems.htm +http://www.tccomputers.com/cgi-bin/bp/1021890426/services/sitemap.htm +http://library.bangor.ac.uk/search/dCrystallography+--+Periodicals/dcrystallography+periodicals/-5,-1,0,B/frameset&F=dcrystallography+mathematical&8,,9 +http://music.excite.ca/artist/-264813 +http://www.gameboyz.com/g/review_465_p4_n3.html +http://library.cwu.edu/search/aCarande,+Robert/acarande+robert/-5,-1,0,B/2exact&F=acarande+robert&1,2 +http://www.townstuff.com/search.cfm?directory=1040&town=285 +http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/graphics/png/files/patch-aa?only_with_tag=RELEASE_2_2_7 +http://www.amcity.com/columbus/stories/1997/07/07/focus6.html?t=email_story +http://retailer.gocollect.com/do/session/1912716/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/checkout/shopping_cart.asp +http://ds.dial.pipex.com/town/drive/kch36/select/s12/ch034.html +http://ds.dial.pipex.com/town/drive/kch36/select/s12/ch118.html +http://www.dbring.de/160/16005-09.html +http://198.103.152.100/search*frc/lHQ+769+E3614/lhq++769+e3614/7,-1,0,B/frameset&F=lhq++777.4+d47&1,1 +http://yp.gates96.com/7/27/70/14.html +http://yp.gates96.com/7/27/70/27.html +http://yp.gates96.com/7/27/70/35.html +http://yp.gates96.com/7/27/70/37.html +http://yp.gates96.com/7/27/70/62.html +http://yp.gates96.com/7/27/71/38.html +http://yp.gates96.com/7/27/71/80.html +http://yp.gates96.com/7/27/72/62.html +http://yp.gates96.com/7/27/72/80.html +http://yp.gates96.com/7/27/73/10.html +http://yp.gates96.com/7/27/73/61.html +http://yp.gates96.com/7/27/73/78.html +http://yp.gates96.com/7/27/74/7.html +http://yp.gates96.com/7/27/74/16.html +http://yp.gates96.com/7/27/75/62.html +http://yp.gates96.com/7/27/76/90.html +http://yp.gates96.com/7/27/77/7.html +http://yp.gates96.com/7/27/77/92.html +http://yp.gates96.com/7/27/78/21.html +http://yp.gates96.com/7/27/79/21.html +http://yp.gates96.com/7/27/79/57.html +http://yp.gates96.com/7/27/79/96.html +http://moviestore.zap2it.com/help/b.STARWARSSAGA%20STARWARS-ROJ/s.nrF6V2sr +http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=8,27,13,5 +http://newspaper.swww.com.cn/1999/cdwb/199912/26/html/1003.html +http://newspaper.swww.com.cn/1999/cdwb/199912/26/html/1008.html +http://iworld.freethemes.com/adnload/77752.html +http://iworld.freethemes.com/adnload/15251.html +http://iworld.freethemes.com/adnload/54697.html +http://iworld.freethemes.com/adnload/15232.html +http://www.fogdog.com/cedroID/ssd3040183238457/nav/products/ice_hockey/1d/gear_accessories/ +http://www.ftp.uni-erlangen.de/pub/Linux/DEBIAN/dists/Debian2.2r0/main/binary-m68k/doc/ +http://www.ftp.uni-erlangen.de/pub/Linux/DEBIAN/dists/Debian2.2r0/main/binary-m68k/sound/ +http://library.cwu.edu/search/aThimbleby,+Harold/athimbleby+harold/-5,-1,0,B/exact&F=athilde+jean&1,2 +http://www5.pconline.com.cn/pcedu/soft/doc/001024/2.htm +http://member.nifty.ne.jp/kaito-mist/nifty5.htm +http://www.cc.yamaguchi-u.ac.jp/~archive/doc/jdk1.2.2/docs/api/java/awt/image/BandedSampleModel.html +http://www.sandiego.digitalcity.com/honolulu/arts/occurrence.dci?ecid=75 +http://ubahn.exit.de/ffm/pic/pp/?S=A +http://www.visiobroker.com/opcvm/details/4/43591.html +http://www.visiobroker.com/opcvm/details/9/9765.html +http://ring.toyama-ix.net/archives/linux/debian/debian-jp/dists/woody-towns/?M=A +http://www.asahi-net.or.jp/~ZI3H-KWRZ/lawylegalaid.html +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/195/1999/7/0/ +http://www.buybuddy.com/sleuth/27/1/1060103/490578/ +http://java.javasoft.com/products/jdk/1.2/ja/docs/ja/api/java/awt/image/BandedSampleModel.html +http://mitglied.tripod.de/~HTTC/mannschaften/3LigaGr1_0001.htm +http://opac.lib.rpi.edu/search/anightingale+peggy+1942/-5,-1,0,B/browse +http://ftp.unina.it/pub/Amiga/NetBSD/NetBSD-current/pkgsrc/editors/ssam/files/ +http://kikakusvr3.city.yokohama.jp/y/j/e25/ktt/ktt.html +http://members.spree.com/entertainment/juskickit/http//members.spree.com/sports/comicus1 +http://www.butuanon.tsx.org/ +http://archive.soccerage.com/s/de/07/05375.html +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1995/10/0/859255/ +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1995/10/50 +http://polygraph.ircache.net:8181/http_-2www.soniajekums.com/docs/Http_-2ua.battle-zone.com/html/html/on_line.html +http://www.affiliate.hpstore.hp.co.uk/do/session/380855/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-creativeworld.com/creativeworld.asp?lang=f +http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/authors/id/T/TO/TOSTI/vstadaf-0.01.readme +http://www.xmission.com/~dkenison/cgi/lwgate.cgi/KLR650/archives/v02.n1633/Subject/article-16.html +http://www.realize.com/p25581.htm,qt=e784fe2f=2a38a234-7-da710e-0-0-0-1-- +http://www.realize.com/am947681.htm,qt=e784fe2f=2a38a234-7-da6e1d-80000000-0-0-3-- +http://www.realize.com/am2c3a81.htm,qt=e784fe2f=2a38a234-7-da6e1d-80000000-0-0-3-- +http://www.realize.com/amd15381.htm,qt=e784fe2f=2a38a234-7-da6e1d-1-84-0-3-- +http://link.fastpartner.com/do/session/600403/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/speednames.php +http://home.freeuk.net/lyne/work.htm +http://www.gotocity.com/local/2/us/AZ/p/85643/people/ +http://www.service911.com/egghead/step/0,2743,6+33+121+25440+18092_4,00.html +http://www.jamba.de/KNet/_KNet-irv8j1-WEd-139z7/showInfo-werbung.de/node.0/cenv0b09a +http://ustlib.ust.hk/search*chi/dbeijing+mandarin+dialects+china+slang/dbeijing+mandarin+dialects+china+slang/-5,1,1,B/frameset&F=dbeijing+mayors+china+fiction&1,1, +http://www.linux.org.tw/~chester/xlib/GC/convenience-functions/XSetGraphicsExposures.html +http://www.linux.org.tw/~chester/xlib/graphics/font-metrics/XUnloadFont.html +http://www.chaos.dk/sexriddle/c/f/j/u/c/ +http://www.chaos.dk/sexriddle/c/f/j/u/q/ +http://www.bornloser.com/comics/committed/archive/committed-20001027.html +http://tulips.ntu.edu.tw/search*chi/dDeath+lc/ddeath+lc/-17,-1,0,E/frameset&F=ddeath+in+adolescence+abstracts&1,,0 +http://hem.fyristorg.com/lottaleman/LLfar/1_6955.htm +http://preview.egroups.com/post/scoresheet-talk?act=reply&messageNum=7013 +http://209.52.189.2/profile.cfm/TimmyJ +http://archive.soccerage.com/s/pt/37/04816.html +http://pub16.ezboard.com/fleftbehindmessageboardfellowshiphall.showMessage?topicID=456.topic&index=16 +http://www.2pl.com/asp/tools/fili1.asp?sp=se&fi=pppp0005s8 +http://link.fastpartner.com/do/session/600382/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/company/jobs.htm +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdenetwork/kppp/Rules/Poland/?only_with_tag=MAIN +http://genforum.genealogy.com/cgi-genforum/forums/flippin.cgi?30 +http://pub.chinaccm.com/23/news/200010/28/114339.asp +http://pub.chinaccm.com/23/news/200010/27/134259.asp +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=21,9,14,35,15 +http://gamesearcher.com/games/pc/returnofphantom-cheatsfaqs.html +http://ua.php.net/manual/es/function.pg-errormessage.php +http://findmail.com/group/prairydog +http://www.loria.fr/projets/dilib/DILIB_ROOT/SYSTEMS/Linux/Dilib/Data/NLM/MedLine/ +http://www.daysinn.com/ctg/cgi-bin/DaysInn/programs/AAAksrACwAAACEaAAQ +http://www.leo.org/leoclick/35dd60550f1ba90ed5bb7952eebae0d3+L+1__ +http://members.fortunecity.com/abbalink/songs/lyrics/wg.htm +http://chat.sportsline.com/u/football/nfl/xword/answers/091500.htm +http://210.173.172.13/entertainments/sports/sydney/kanrenkiji/0924/0925m096-500.html +http://210.173.172.13/entertainments/sports/sydney/kanrenkiji/0924/0925m094-500.html +http://www.private-immobilien-boerse.de/nordrhein-Westfalen/Muehlheim-ruhr/Verkauf/3d-service/Gemeinsam/Inserieren/3d-service/Gemeinsam/versicherungen/gebaeude/deckungsumfang.htm +http://www.private-immobilien-boerse.de/nordrhein-Westfalen/Muehlheim-ruhr/Verkauf/3d-service/Gemeinsam/Inserieren/3d-service/Gemeinsam/IIMMitglieder.htm +http://www.realize.com/amcf7781.htm,qt=e784fe2f=2a38a234-4-7cf2ef-80000000-0-0-3-- +http://family.go.com/Categories/Features/family_1998_12/penn/penn128urban/ +http://www.loria.fr/projets/dilib/DILIB_ROOT/ApplicationsTest/Dilib/newBD/Prog/?N=D +http://www.loisirs.ch/xfeoav/7/kqbmsh.html +http://tucows.tu-graz.ac.at/herdwin0807.html +http://www-d0.fnal.gov/cgi-bin/cvsweb.cgi/gtr_htf/dat/?sortby=log +http://www.buybuddy.com/sleuth/17/1/2006/32619/ +http://www.aelita.net/products/Reg/QuoteRegister/products/library/products/company/Privacy.htm +http://www.refdag.nl/bui/990803bui08.html +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+9,6-14,0+0,2 +http://www.aelita.net/products/services/support/sitemap/news/solutions/default.htm +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=26,5,30,16,12 +http://www.ericsson.cl/gsmpro/contact.shtml +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/maheuitu/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mangoo333/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/maomizhijia/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/masaki_hamada/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/maxiaofei/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/maz0503/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/menghuanboy/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/michealshen/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mike717/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mikeshang_2/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mingyueyaze/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mm3/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mnbv89/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/morsia/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/move/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mslug/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/msshi/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/muwei/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/my1799/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mychat2000/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/myesky/ +http://members.tripodasia.com.cn/maolin_photo/maolin_suzuki/maolin_suzuki/mzlzq/ +http://www.ring.gr.jp/pub/linux/Vine/VineSeed/alpha/mnt/source/sbin/loader +http://www.nrk.no/finnmark/x8_5_96/nyh7.htm +http://202.99.23.245/rmrb/200001/27/no_txb_6.html +http://www-d0.fnal.gov/d0dist/dist/releases/test/smt_hit/test/?N=D +http://www-d0.fnal.gov/d0dist/dist/releases/test/smt_hit/test/LIBRARIES +http://jupiter.u-3mrs.fr/~msc41www/releves/13440405.HTM +http://ftp.univie.ac.at/packages/perl/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/CGI/ANDK/Apache-correct_headers.readme.html +http://www.linux.com/networking/network/networking/free/windows_nt/distro/ +http://www.linux.com/networking/network/networking/free/windows_nt/tip/ +http://australia-holiday-guide.com/Englisch/Queensland_1/QLD_Furher_North_1/qld_further_north_1.html +http://australia-holiday-guide.com/Englisch/Queensland_1/QLD_Great_Barrier_Reef_1/qld_great_barrier_reef_1.html +http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/Ayrton.readme +http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/Deadline_1.readme +http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/DiamondPPC.readme +http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/Gravity2_inv.readme +http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/HJB-BCFix.readme +http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/ImpPos.readme +http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/Nat-AutF.readme +http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/PSB-Desperado2.readme +http://ftp.uni-paderborn.de/aminet/aminet/demo/aga/PSB-PUK_final.readme +http://genforum.genealogy.com/cgi-genforum/forums/kilroy.cgi?34 +http://genforum.genealogy.com/cgi-bin/print.cgi?kilroy::34.html +http://content.health.msn.com/ef/message/803324/content.health.msn.com%2fmessage_board_message%2f803324/803324 +http://de.excite.de/gesundheit/katalog/6107 +http://de.excite.de/gesundheit/katalog/4909 +http://de.excite.de/gesundheit/katalog/5941 +http://de.excite.de/gesundheit/katalog/4924 +http://de.excite.de/gesundheit/katalog/5898 +http://de.excite.de/gesundheit/katalog/4949 +http://de.excite.de/gesundheit/katalog/5987 +http://de.excite.de/gesundheit/katalog/5855 +http://de.excite.de/gesundheit/katalog/39862 +http://de.excite.de/gesundheit/katalog/5852 +http://de.excite.de/gesundheit/katalog/5645 +http://de.excite.de/gesundheit/katalog/6078 +http://de.excite.de/gesundheit/katalog/5834 +http://yp.gates96.com/11/26/80/31.html +http://yp.gates96.com/11/26/80/47.html +http://yp.gates96.com/11/26/80/91.html +http://yp.gates96.com/11/26/81/61.html +http://yp.gates96.com/11/26/81/86.html +http://yp.gates96.com/11/26/82/37.html +http://yp.gates96.com/11/26/82/49.html +http://yp.gates96.com/11/26/83/38.html +http://yp.gates96.com/11/26/83/52.html +http://yp.gates96.com/11/26/83/58.html +http://yp.gates96.com/11/26/83/84.html +http://yp.gates96.com/11/26/84/0.html +http://yp.gates96.com/11/26/84/59.html +http://yp.gates96.com/11/26/84/75.html +http://yp.gates96.com/11/26/84/99.html +http://yp.gates96.com/11/26/85/37.html +http://yp.gates96.com/11/26/85/63.html +http://yp.gates96.com/11/26/85/78.html +http://yp.gates96.com/11/26/86/36.html +http://yp.gates96.com/11/26/86/40.html +http://yp.gates96.com/11/26/87/66.html +http://yp.gates96.com/11/26/87/87.html +http://yp.gates96.com/11/26/89/7.html +http://yp.gates96.com/11/26/89/21.html +http://yp.gates96.com/11/26/89/38.html +http://providenet.tukids.tucows.com/mac/9-12/macspell912_license.html +http://providenet.tukids.tucows.com/mac/9-12/adnload/25805_25780.html +http://www04.u-page.so-net.ne.jp/zb3/eiji-m/dog6.htm +http://school.educities.org/card/jou0731.html +http://school.educities.org/card/ke234.html +http://school.educities.org/card/aaaaaqqqqqqq.html +http://school.educities.org/card/cso.html +http://school.educities.org/card/g40203.html +http://school.educities.org/card/h123915388.html +http://school.educities.org/card/k1084211.html +http://www.cigar-pipe.de/SP/dhuc3112.htm +http://www.newquestcity.com/cities/MA///news/3675.htm +http://caowei_814.home.chinaren.com//wenxue/wenxue-mood/love147.htm +http://www.amulation.com/md-l-archive/199805/msg00065.html +http://in.egroups.com/messages/conventions/51?viscount=-30 +http://yp.gates96.com/11/63/20/4.html +http://yp.gates96.com/11/63/20/21.html +http://yp.gates96.com/11/63/20/51.html +http://yp.gates96.com/11/63/21/29.html +http://yp.gates96.com/11/63/21/41.html +http://yp.gates96.com/11/63/21/74.html +http://yp.gates96.com/11/63/22/4.html +http://yp.gates96.com/11/63/22/29.html +http://yp.gates96.com/11/63/22/80.html +http://yp.gates96.com/11/63/22/86.html +http://yp.gates96.com/11/63/23/7.html +http://yp.gates96.com/11/63/23/24.html +http://yp.gates96.com/11/63/23/39.html +http://yp.gates96.com/11/63/24/1.html +http://yp.gates96.com/11/63/25/35.html +http://yp.gates96.com/11/63/25/78.html +http://yp.gates96.com/11/63/25/83.html +http://yp.gates96.com/11/63/26/37.html +http://yp.gates96.com/11/63/27/3.html +http://yp.gates96.com/11/63/27/9.html +http://yp.gates96.com/11/63/27/14.html +http://yp.gates96.com/11/63/28/16.html +http://yp.gates96.com/11/63/28/26.html +http://yp.gates96.com/11/63/28/54.html +http://yp.gates96.com/11/63/28/55.html +http://yp.gates96.com/11/63/29/13.html +http://yp.gates96.com/11/63/29/64.html +http://yp.gates96.com/11/63/29/69.html +http://spaceports.tucows.com/winnt/httpservernt_license.html +http://www.affiliate.hpstore.hp.co.uk/do/session/380848/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp +http://incrediblegolfsavings.subportal.com/sn/Games/Simulation_Games/11310.html +http://incrediblegolfsavings.subportal.com/sn/Games/Simulation_Games/12064.html +http://www.linux.com/networking/linux/industry/gnu/operating_system/Corel/ +http://www.linux.com/networking/linux/industry/gnu/operating_system/Updates/ +http://www.fogdog.com/cedroID/ssd3040183307418/womens/ +http://www.fogdog.com/cedroID/ssd3040183307418/nav/products/featured_brands/1o/casual_sunglasses/ +http://www.fogdog.com/cedroID/ssd3040183307418/nav/products/featured_brands/1o/hockey_skates/ +http://www.fogdog.com/cedroID/ssd3040183307418/nav/products/featured_brands/1o/sweatshirts_fleece/ +http://www.fogdog.com/cedroID/ssd3040183307418/crs/nvCZ/wld/fogdog_sports/nike/football/equipment/500r_series_football.html +http://www.seoul.co.kr/dmaeil/199908/0820j015.htm +http://www-trn.bards.ru/Lobanovskiy/part13.htm +http://www-trn.bards.ru/Vahnuk/part27.htm +http://www-trn.bards.ru/Vetrova_Svetlana/part9.htm +http://www-trn.bards.ru/Tretiyakov/part22.htm +http://www-trn.bards.ru/Okoudjava/part202.htm +http://www-trn.bards.ru/Panyushkin/part100.htm +http://www-trn.bards.ru/Gorodnicky/part287.htm +http://yumemi.ne.jp/bbs/ky/view/f/forum9/1_jpbshj_vvvzil.html +http://yumemi.ne.jp/bbs/ky/view/f/forum9/1_xxosis_czhmrb.html +http://yumemi.ne.jp/bbs/ky/view/f/forum9/1_yikriy_qjvins.html +http://www.peopledaily.co.jp/shch/199907/28/newfiles/D103.html +http://legalminds.lp.findlaw.com/list/newlawbooks-l/frm00336.html +http://tucows.sp-plus.nl/winme/phoneme.html +http://ustlib.ust.hk/search*chi/dalcoholic+beverages+china/dalcoholic+beverages+china/7,-1,0,E/2browse +http://ustlib.ust.hk/search*chi/dalcoholic+beverages+china/dalcoholic+beverages+china/-5,-1,0,E/frameset&F=dalcoholic+beverages+great+britain&1,,0 +http://www.canit.se/(k10,k13,k16,k6)/support/faq/faq.html +http://aecjobbank.com/texis/script/jobbank/+Owwrmwxeri2wBV6evNVpwwwF6eWYqkwwwn6eXmcOwwwn6ekmyjwwwn6eULpOwwqn6eUCBZwwwn6e22QuwwwefPY9GepmwwmeiP46eczdwwmeOTB6eXhzwwwnmBVve89AHwwxeY44Ie-pxwww+vejWRhwwxealYTeXjzwwwhvep9q9wwwxveoA6kwwqe0PYieqFzwwwv6eFRFrwwwt6eSGxDwwwetNY1e8drwwqeT53Amwww0h7mwww1tzmwwweb-3qmwwww/jobdirectory.html +http://www9.hmv.co.uk:5555/do/session/1347780/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/newmenu.html +http://www9.hmv.co.uk:5555/do/session/1347780/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d30_sd0_pt0.html +http://www9.hmv.co.uk:5555/do/session/1347780/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d70_sd0_pt0.html +http://www9.hmv.co.uk:5555/do/session/1347780/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d90_sd0_pt0.html +http://www9.hmv.co.uk:5555/do/session/1347780/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d120_sd0_pt0.html +http://www.hbdaily.com.cn/hbrb/20000622/BIG5/hbrb^18323^12^0622h016.htm +http://excite.de/immobilien/katalog/6877 +http://excite.de/immobilien/katalog/7012 +http://www.globalmart.com/housewares/appliances/household/irons/blackanddecker/S680.htm +http://mediate.magicbutton.net/do/session/625631/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-artc.html +http://ddb.libnet.kulib.kyoto-u.ac.jp/exhibit/mt3/image/mt3shf/mt3sh0192.html +http://us.parsimony.net/forum26166/messages/410.htm +http://linux.tnc.edu.tw/CPAN/authors/id/A/AZ/AZEMGI/?M=A +http://linux.tnc.edu.tw/CPAN/authors/id/A/AZ/AZEMGI/CHECKSUMS +http://launchbase.com/Shopping/Visual_Arts/communication/entertainment/Pictures_&_Images.htm +http://launchbase.com/Shopping/Visual_Arts/communication/shopping/Gifts.htm +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/programs/simple/music/midi/lit/lit/quizz/quizz1.html +http://home02.wxs.nl/~nash0002/amber-94.htm +http://www.redrocksports.com/sports/webSession/shopper/RR972959711-31098/store/dept-5/department/dept-5/item/52400 +http://www.redrocksports.com/sports/webSession/shopper/RR972959711-31098/store/dept-5/department/dept-5/item/52550 +http://www.redrocksports.com/sports/webSession/shopper/RR972959711-31098/store/dept-5/department/dept-5/item/50900 +http://gnu.archive.sunet.se/software/sather/ICSI_Sather/Documentation/Compiler/CompilerBrowser/shortflat-FLIST{_}.html +http://mailman.real-time.com/rte-crossfire/1992/Dec/mail1.html +http://de.nedstat.net/viewstat.asp?name=larsen +http://ftp.ring.gr.jp/archives/pc/gnu-win32/latest/man/?S=A +http://src.openresources.com/debian/src/graphics/HTML/D/S_ISSOCK.html +http://www.perotech.ch/d/securedb/html/listtopic.php?4277 +http://web.health.aol.thriveonline.oxygen.com/medical/library/article/003558res.html +http://cn.egroups.com/message/Website_Warez/346 +http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/OnlineCitiesSM/OnlineCitiesInteractiveCityGuides/bd510213891 +http://ring.nii.ac.jp/pub/pack/x68/personal/calendar/ +http://www.zeal.com/Government/U_S__Government/State___Local_Governments/South_Carolina/Politics/Elections/State_wide/ +http://ftp.unina.it/pub/TeX/macros/latex209/contrib/manual/?S=A +http://www.perotech.ch/d/securedb/html/listtopic.php?5376 +http://polygraph.ircache.net:8181/lci/https_-2ssl.galaxy-net.net/jazzee/http_-2www.microsoft.com/truetype/fontpack/win.htm +http://python.konbib.nl/dutchess.ned/83/00/info-1592.html +http://www.excite.com/lifestyle/cultures_and_groups/world_cultures/regions/north_america/ethnic_communities/african_american/history/military_history/ +http://www.bluemonutain.com/engy/david/CHI1-educk.html +http://www.bluemonutain.com/engy/susie/CHI1-edaddog.html +http://cn.egroups.com/messages/childhoodepilepsy/3349 +http://cn.egroups.com/messages/childhoodepilepsy/648 +http://cn.egroups.com/messages/childhoodepilepsy/1189 +http://polygraph.ircache.net:8181/services/design/http_-2www.swnebr.net/~cambridg/http_-2www.bikininet.com/climate.htm +http://www.annuairefrancais.com/54/France/I/INTERNET/Fournisseurs-d'acces/Fournisseurs-d +http://polygraph.ircache.net:8181/http_-2www.monarchcom.net/http_-2www.netscape.com/comprod/mirror/http_-2bible.gospelcom.net/http_-2www.rehablinks.com/ptlinks.htm +http://findmail.com/message/studentdoctor/4312?source=1 +http://mediate.magicbutton.net/do/session/625624/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-cart.html +http://ring.htcn.ne.jp/archives/lang/perl/CPAN/authors/id/P/PG/?M=A +http://www.buybuddy.com/sleuth/33/1/10601/526343/ +http://www1.zdnet.com/products/stories/reviews/0,4161,2470142,00.html +http://www1.zdnet.com/companyfinder/filters/products/0,9996,2256-82,00.html +http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdeutils/ark/doc/en/Attic/index-2.html?only_with_tag=MAIN +http://tv.thevines.com/leaf/AA0000364048/45///&act=24-1-11&bref=1601 +http://link.fastpartner.com/do/session/600384/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/local/redirect.php +http://www.excite.com/lifestyle/politics_and_society/community_and_cultures/world_cultures/diaspora/jewish/judaism/congregations/humanistic_judaism/ +http://biblio.cesga.es:81/search*gag/aXove,+XosÃÂé/axove+xose/7,-1,0,B/frameset&F=axuntanza&1,,3 +http://biblio.cesga.es:81/search*gag/aXove,+XosÃÂé/axove+xose/7,-1,0,B/frameset&F=axuntanza&3,,3 +http://db.zaq.ne.jp/asp/bbs/jttk_baasc506_1/article/36 +http://db.zaq.ne.jp/asp/bbs/jttk_baasc506_1/article/37 +http://db.zaq.ne.jp/asp/bbs/jttk_baasc506_1/article/35 +http://db.zaq.ne.jp/asp/bbs/jttk_baasc506_1/article/21 +http://www.tiroler-adler.com/1Root/Kontinent/6/Staat/7/Bundesland/16/Ort/691/Homepage/f_homepage...1.html +http://yp.gates96.com/4/52/90/87.html +http://yp.gates96.com/4/52/90/95.html +http://yp.gates96.com/4/52/91/4.html +http://yp.gates96.com/4/52/91/39.html +http://yp.gates96.com/4/52/91/42.html +http://yp.gates96.com/4/52/92/33.html +http://yp.gates96.com/4/52/92/93.html +http://yp.gates96.com/4/52/93/6.html +http://yp.gates96.com/4/52/93/98.html +http://yp.gates96.com/4/52/94/8.html +http://yp.gates96.com/4/52/94/14.html +http://yp.gates96.com/4/52/95/92.html +http://yp.gates96.com/4/52/96/16.html +http://yp.gates96.com/4/52/96/32.html +http://yp.gates96.com/4/52/96/72.html +http://yp.gates96.com/4/52/96/90.html +http://yp.gates96.com/4/52/97/1.html +http://yp.gates96.com/4/52/97/53.html +http://yp.gates96.com/4/52/98/34.html +http://yp.gates96.com/4/52/98/84.html +http://yp.gates96.com/4/52/98/97.html +http://yp.gates96.com/4/52/99/55.html +http://yp.gates96.com/4/52/99/68.html +http://yp.gates96.com/14/40/10/3.html +http://yp.gates96.com/14/40/10/86.html +http://yp.gates96.com/14/40/11/53.html +http://yp.gates96.com/14/40/12/74.html +http://yp.gates96.com/14/40/13/11.html +http://yp.gates96.com/14/40/13/34.html +http://yp.gates96.com/14/40/13/45.html +http://yp.gates96.com/14/40/13/79.html +http://yp.gates96.com/14/40/14/3.html +http://yp.gates96.com/14/40/14/6.html +http://yp.gates96.com/14/40/14/25.html +http://yp.gates96.com/14/40/14/84.html +http://yp.gates96.com/14/40/14/88.html +http://yp.gates96.com/14/40/15/39.html +http://yp.gates96.com/14/40/15/40.html +http://yp.gates96.com/14/40/16/64.html +http://yp.gates96.com/14/40/16/92.html +http://yp.gates96.com/14/40/17/69.html +http://yp.gates96.com/14/40/18/42.html +http://yp.gates96.com/14/40/18/82.html +http://yp.gates96.com/14/40/19/36.html +http://www.4positiveimages.com/4positiveimages/727410225/IconBar +http://www.teacherformation.org/html/od/facilitators.cfm/task1,login/discussion_id,2/xid,6559/yid,6157439 +http://www.secinfo.com/dSU5m.74.htm +http://www.secinfo.com/dSU5m.7v.htm +http://www.secinfo.com/dSU5m.6y.htm +http://www.secinfo.com/dSU5m.5c.htm +http://linux.softhouse.com.cn/linux/knowledge/tech/qs/linux5.htm +http://linux.softhouse.com.cn/linux/knowledge/tech/qs/linux10.htm +http://freesoftware.subportal.com/sn/Programming/Visual_Basic_Components_H-P/993.html +http://dk.egroups.com/message/NGHILUAN/2881 +http://dk.egroups.com/message/NGHILUAN/2889 +http://www.cga.state.ct.us/ps98/cbs/H/hj-0084.htm +http://apple.excite.com/entertainment/music/artists_and_genres/jazz/new_world_jazz/afro_cuban/ +http://www.euronet.nl/users/hiroshi/ksweb/interest.htm +http://library.bangor.ac.uk/search/aMollica,+Anthony/amollica+anthony/-5,-1,0,B/browse +http://www.fogdog.com/cedroID/ssd3040183308040/nav/products/featured_brands/14t/all/ +http://www.brio.de/BRIO.catalog/39fe2f8d0912d4962740d472aa780701/UserTemplate/9 +http://www.hig.se/(accessed,autoformat,referrer,sqloutput,tablify)/~jackson/roxen/ +http://www.newstimescybermall.com/Mall/Catalog/Product/ASP/product-id/206059/store-id/1000010991.html +http://www6.163.com/news/p-item/0,1587,economy_1916,00.html +http://ftp.uni-stuttgart.de/pub/systems/sgi/graphics/lib/?D=A +http://preview.egroups.com/message/abdou3/152 +http://ch.php.net/manual/it/function.pg-loimport.php +http://yp.gates96.com/1/94/30/39.html +http://yp.gates96.com/1/94/30/78.html +http://yp.gates96.com/1/94/31/11.html +http://yp.gates96.com/1/94/31/72.html +http://yp.gates96.com/1/94/31/85.html +http://yp.gates96.com/1/94/32/25.html +http://yp.gates96.com/1/94/32/45.html +http://yp.gates96.com/1/94/32/74.html +http://yp.gates96.com/1/94/33/20.html +http://yp.gates96.com/1/94/33/68.html +http://yp.gates96.com/1/94/34/92.html +http://yp.gates96.com/1/94/35/1.html +http://yp.gates96.com/1/94/35/50.html +http://yp.gates96.com/1/94/35/60.html +http://yp.gates96.com/1/94/37/0.html +http://yp.gates96.com/1/94/37/46.html +http://yp.gates96.com/1/94/37/47.html +http://yp.gates96.com/1/94/37/61.html +http://yp.gates96.com/1/94/38/19.html +http://yp.gates96.com/1/94/39/49.html +http://yp.gates96.com/1/94/39/57.html +http://www.gartenfachmarkt.de/beratung_garten/duengen_und_kompostieren/anlage_und_vorarbeiten/fertig.htm +http://support.dell.com/docs/storage/4955r/en/Hw/setup.htm +http://www.hig.se/(clientname,header,sort,sqlquery,sqltable)/~jackson/roxen/ +http://www.mic.hr/PGBURZA:423870 +http://www.mic.hr/PGNEWS:423870 +http://members.tripod.com/Tess_Tom/my_photoalbum/page12.html +http://legalminds.lp.findlaw.com/list/courtinterp-spanish/nav05815.html +http://www.fogdog.com/cedroID/ssd3040183239698/crs/pn__/wld/fogdog_sports/pearl_izumi/road_cycling/apparel/classic_vest.html +http://www.fogdog.com/cedroID/ssd3040183239698/nav/stores/wakeboarding/ +http://troy.lib.sfu.ca/search/slogos/slogos/-5,-1,0,E/frameset&F=slogistics+and+transportation+review&1,,0 +http://themes.tucows.dia.dk/skins/icq/preview/54718.html +http://php.nic.fi/manual/html/function.shm_open.html +http://ftp.fi.debian.org/debian/dists/woody/non-free/binary-m68k/misc/?S=A +http://www.csupomona.edu/reference/java/jdk1.2/docs/api/org/omg/CORBA/class-use/CompletionStatus.html +http://www.trax.nilex.co.uk/trax.cgi/A1C/B1U/A1D/C1R/A1D/B1R/ +http://www.uni-duesseldorf.de/ftp/ftp/software/opt/cpio-2.4.2/?M=A +http://ep.com/js/about/c9079/b0/250918.html +http://polygraph.ircache.net:8181/busi/html/http_-2www.dirtsports.com/index.html-ssi +http://www.chabadlibrary.org/ecatalog/EC06/EC06232.HTM +http://chat.hani.co.kr/NetBBS/Bbs.dll/brief/lst/qqa/f/qqo/PRMY/zka/B23qB2Bm +http://209.207.239.212/bkindex/c1047/f1128.html +http://tv.thevines.com/leaf/AA0000364429/4/1 +http://tv.thevines.com/leaf/AA0000364429/4//&order_by=WORST +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=12,17,20,5,16 +http://yp.gates96.com/4/4/40/22.html +http://yp.gates96.com/4/4/40/29.html +http://yp.gates96.com/4/4/41/11.html +http://yp.gates96.com/4/4/42/0.html +http://yp.gates96.com/4/4/42/27.html +http://yp.gates96.com/4/4/42/89.html +http://yp.gates96.com/4/4/42/99.html +http://yp.gates96.com/4/4/43/40.html +http://yp.gates96.com/4/4/43/69.html +http://yp.gates96.com/4/4/43/85.html +http://yp.gates96.com/4/4/44/27.html +http://yp.gates96.com/4/4/44/28.html +http://yp.gates96.com/4/4/44/36.html +http://yp.gates96.com/4/4/44/86.html +http://yp.gates96.com/4/4/45/76.html +http://yp.gates96.com/4/4/45/82.html +http://yp.gates96.com/4/4/45/86.html +http://yp.gates96.com/4/4/46/61.html +http://yp.gates96.com/4/4/47/1.html +http://yp.gates96.com/4/4/47/41.html +http://yp.gates96.com/4/4/47/42.html +http://yp.gates96.com/4/4/48/66.html +http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/misc/geekcode/pkg-descr?only_with_tag=RELEASE_3_4_0 +http://perso.wanadoo.fr/genealogie.aubert.jm/geweb/ff100.htm +http://www.securitiestimes.com.cn/199904/29/data/newfiles/0060080.htm +http://autos.yahoo.co.jp/ucar/m1015/k10152012199906/g21/a101520120210248821003520208199906.html +http://dg.galaxy.com/galaxy/Community/United-States/States/Connecticut/Cities-and-Regions/Guilford/Education/K--12/Middle.html +http://carriage.de/Schoner/info-e/literature/collections/models/ +http://www.amcity.com/orlando/stories/1998/06/29/weekinbiz.html?t=email_story +http://www.icopyright.com/1.1655.94549 +http://biblio.cesga.es:81/search*gag/dMicrosoft+Visual+BASIC+(Archivo+de+ordenador)/dmicrosoft+visual+basic+archivo+de+ordenador/-5,1,1,B/frameset&F=dmicrosoft+project+archivo+de+ordenador&1,1, +http://www.jamba.de/KNet/_KNet-AzI8j1-tGd-13d56/browse.de/node.0/cde7f1uou +http://www.jamba.de/KNet/_KNet-AzI8j1-tGd-13d5e/browse.de/node.0/cde7f1uou +http://www.ioppublishing.com/PEL/help/article/ja30010l2/refs/?topic=refs +http://members.tripod.lycos.co.kr/uuujsh/?N=D +http://www.wlu.ca/~wwwregi/95-96/cal/ucourses/CP/CP417.html +http://books.hyperlink.co.uk/bookinfo/Essential_Papers_on_Messianic_Movements_and_Personalities_in_Jewish_History/0814779433 +http://generalstore.everdream.com/kore/catalog/Office_Supplies/Furniture_&_Accessories/File_Cabinets/Vertical/GRP-US747/product.html +http://satlink.tucows.com/winnt/adnload/54136_29678.html +http://dc.web.aol.com/myrtlebeacharea/penpals/browse.dci?cat=twenties&sort=m +http://itcareers.careercast.com/texis/it/itjs/+nwwBme4WD86e4rwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewDthDo5O5apGdtGwMaBGnDBdDaqd1DBGon5aoDqc1moDtax15oDn55amnVncdpoDta5dc1BodD5adppdGB1DoBon5aqdMpnBoBoVnaMFqtuNfIjIDzmYqwwpBme68D86eihwww5rmerdwwwBrmeZpwww/jobpage.html +http://ring.yamanashi.ac.jp/pub/linux/debian/debian-jp/dists/hamm-jp/hamm/disks-i386/current/base14-3.bin.2.0.11.2-i386 +http://www.ibm.co.jp/pc/thinkpad/pt110/look110.html +http://retailer.gocollect.com/do/session/1912720/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/postcards/index.asp +http://www-rn.informatik.uni-bremen.de/home/X11R6/xc/doc/hardcopy/XProtocol/?N=D +http://cafe3.daum.net/Cafe-bin/bbsList?bbsgrp=SIXTEEN&bbscode=SIXTEENbbs +http://allmacintosh.arrakis.es/adnload/12140.html +http://allmacintosh.arrakis.es/adnload/2476.html +http://www.msb.malmo.se/search*swe/dSkönlitteratur/dskz~cnlitteratur/-5,-1,0,B/2exact&F=dskz~cnliteratur&1,2 +http://tucows.syix.com/winme/preview/137803.html +http://pages.prodigy.net/patotoole/musicman/page6.htm +http://yp.gates96.com/14/43/0/39.html +http://yp.gates96.com/14/43/0/78.html +http://yp.gates96.com/14/43/0/79.html +http://yp.gates96.com/14/43/0/99.html +http://yp.gates96.com/14/43/1/3.html +http://yp.gates96.com/14/43/1/57.html +http://yp.gates96.com/14/43/1/86.html +http://yp.gates96.com/14/43/2/74.html +http://yp.gates96.com/14/43/2/80.html +http://yp.gates96.com/14/43/3/2.html +http://yp.gates96.com/14/43/3/97.html +http://yp.gates96.com/14/43/3/99.html +http://yp.gates96.com/14/43/4/37.html +http://yp.gates96.com/14/43/4/51.html +http://yp.gates96.com/14/43/4/72.html +http://yp.gates96.com/14/43/6/4.html +http://yp.gates96.com/14/43/7/20.html +http://yp.gates96.com/14/43/7/39.html +http://yp.gates96.com/14/43/7/45.html +http://yp.gates96.com/14/43/9/41.html +http://yp.gates96.com/14/43/9/58.html +http://yp.gates96.com/14/43/9/60.html +http://ftp.support.compaq.com/public/dunix/v3.2g/ASE_V1.3/ReleaseNotes.htm +http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/mchI1k9vDw6DGJ19bljzJPwhHhJYxAcnAIKgudPEJtzjiTWMWT4U-YMr4m-AccPn7sEIqMzfFTZnQEQBZNx-lh8DEr_c1F3DXpcc4PzhALzHJ76GytRWNCSauwtfVocYmy_RKsP-H9T-UhQgoc9_uexBhD4a +http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/IqtI3V1hdRxfYW_4AHOzeXZkuTzyKfveVl4qdYM_2WFldvLDKFgK8SvYa0mSlrWDVodDERGv2jvb2dEN1-mRmY3TBKURFCsqneanb8BNMBeBfqmSnBYuou5RMCmHxXCedHy3TQnL51n3TYbg5exYBWl9FJTcQEIJt2wyyrfB66jP +http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/Hk1ILVbQbFwze5TrhlBima0MylJ0gTqcnVeTbMTcn7Gy5GkelYKhUQ7m8P8_K3IkOWfIWbpGOJEuHqJLX5jY_7ygFevbtkNXPvb1yztdy9qzCTsCJvS5uaHN3cZd0LtuoMX3lX7d_-L_PrwRXSfTE3TNvWl-RHiY4Xmxk1fXhD_uwwjDvC7DDsxz66j6 +http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/T41IiB449vZ7nrOl2Z_klJHCHQZhigz52e9YVMztVI-K01klBYQrw4VmiKN8JDs9xaeMSWopQs1euSbr6BAiyuqpbSFiiVWObVmWHv031jtdQ1y93wnHhx8PkbrA4hkNhjTPs2mUhBF9wIAJSPCYLkf6W7mCB8ObikqLTuIwBfRtSgMK4Hz9e7Bp +http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/CI1IlJNaoNrBcwJYSEcjLyxBnpQHK3wpRPeCR_0u07GznNXQ3Ug57ciOqlfXKlYM1HbRfcvrF5s214yaEHiIizneyWrbSEW_xal49NjQDbWj6R2nEZvDQdDMQEMoTuQlSetyUwMidLBmJJ5v5w9m066en6Yxuzt3RkGIyoHKaVmXgVIYD2Fc40eA +http://www.secinfo.com/dSm4r.997.htm +http://www.secinfo.com/dSm4r.68c.htm +http://www.secinfo.com/dSm4r.69c.htm +http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/modules/by-module/MD5/GAAS/HTML-Parser-3.04.readme +http://polygraph.ircache.net:8181/Game+Controllers/http_-2www.real-e-video.com/price-abuse.html +http://ecomonly.shop.goto.com/z/netadp/search/matches.jhtml?MANUF=Linksys +http://ecomonly.shop.goto.com/z/netadp/search/matches.jhtml?MANUF=Madge +http://freesoftware.subportal.com/sn/Web_Authoring/Misc__Programming_Tools/3100.html +http://www.sam.hi-ho.ne.jp/m-saka/stepwgn/himeji/6scene/ +http://ftp.unina.it/pub/Unix/linux/SuSE/ftp.suse.com/projects/3d/kernel/?N=D +http://www.ld.com/cbd/archive/1999/08(August)/10-Aug-1999/61awd001.htm +http://www.ld.com/cbd/archive/1999/08(August)/10-Aug-1999/61awd004.htm +http://statweb.byu.edu/sasdoc/sashtml/stat/chap2/sect5.htm +http://www.diogenes.de/4DACTION/web_rd_aut_show_authorlist/ID=483367&chr=F +http://web1.localbusiness.com/Story/Email/1,1198,RDU_461041,00.html +http://www.clientwire.com/A55697/tmr.nsf/vwApprovedResumesbyDate!OpenView&Start=55&Count=50&Collapse=48 +http://cpan.nitco.com/modules/by-module/Mail/JWIED/SNMP-Monitor-0.1011.readme +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=178,16,10 +http://www6.compaq.com/products/quickspecs/10135_na/10135_na.PDF +http://www.suk2.com/user/777/20001012.html +http://www.jamba.de/KNet/_KNet-vAy8j1-iFd-13az6/browse.de/node.0/cde7f2elw +http://www.imagesofengland.org.uk/41/69/416915.htm +http://ocean.ntou.edu.tw/search*chi/aLaplante,+Phillip+A./alaplante+phillip+a/7,-1,0,B/frameset&F=alappe+frances+moore&1,,2 +http://ocean.ntou.edu.tw/search*chi/aLaplante,+Phillip+A./alaplante+phillip+a/7,-1,0,B/frameset&F=alappe+frances+moore&2,,2 +http://wap.jamba.de/KNet/_KNet-6Fz8j1-oFd-13b3x/admLogin.de/node.0/cde7f1uou +http://yp.gates96.com/14/49/20/26.html +http://yp.gates96.com/14/49/20/37.html +http://yp.gates96.com/14/49/20/39.html +http://yp.gates96.com/14/49/20/86.html +http://yp.gates96.com/14/49/20/94.html +http://yp.gates96.com/14/49/20/97.html +http://yp.gates96.com/14/49/21/19.html +http://yp.gates96.com/14/49/21/43.html +http://yp.gates96.com/14/49/21/68.html +http://yp.gates96.com/14/49/21/78.html +http://yp.gates96.com/14/49/24/6.html +http://yp.gates96.com/14/49/24/62.html +http://yp.gates96.com/14/49/24/77.html +http://yp.gates96.com/14/49/24/83.html +http://yp.gates96.com/14/49/25/30.html +http://yp.gates96.com/14/49/25/41.html +http://yp.gates96.com/14/49/26/17.html +http://yp.gates96.com/14/49/26/53.html +http://yp.gates96.com/14/49/27/21.html +http://yp.gates96.com/14/49/27/27.html +http://yp.gates96.com/14/49/27/45.html +http://yp.gates96.com/14/49/27/65.html +http://yp.gates96.com/14/49/28/71.html +http://www.boston.digitalcity.com/orangecounty/entertainment/article.dci?aid=1293&start=10 +http://tucows.allnet.it/winme/adnload/143-006-005-021.html +http://tucows.allnet.it/winme/adnload/143-006-005-030.html +http://www.trax.nilex.co.uk/trax.cgi/A1C/B1U/A1D/C1R/A2D/A1U/ +http://www.crosswinds.net/~klinnia/DragonsDomain/Nest/nest.htm +http://mirrors.valueclick.com/backup.pause/modules/by-category/99_Not_In_Modulelist/Memoize/?S=A +http://www.tgw.com/EJr.5ajd/customer/category/product.html?SUBCATEGORY_ID=557 +http://www.sohu.com/business_economy/Company/Computer_Internet/Network_System/Network/ +http://china-water.51.net/oicq/oicq_down.htm +http://ftp.lip6.fr/pub/FreeBSD/development/FreeBSD-CVS/ports/math/plplot/patches/Attic/patch-ac,v +http://library.cuhk.edu.hk/search*chi/cHC427.92.C59/chc++427.92+c59/-5,-1,,E/browse +http://yp.gates96.com/4/8/60/2.html +http://yp.gates96.com/4/8/60/19.html +http://yp.gates96.com/4/8/62/9.html +http://yp.gates96.com/4/8/62/23.html +http://yp.gates96.com/4/8/62/59.html +http://yp.gates96.com/4/8/63/26.html +http://yp.gates96.com/4/8/63/41.html +http://yp.gates96.com/4/8/64/48.html +http://yp.gates96.com/4/8/65/0.html +http://yp.gates96.com/4/8/65/42.html +http://yp.gates96.com/4/8/66/13.html +http://yp.gates96.com/4/8/66/88.html +http://yp.gates96.com/4/8/67/23.html +http://yp.gates96.com/4/8/67/51.html +http://yp.gates96.com/4/8/68/11.html +http://yp.gates96.com/4/8/68/16.html +http://yp.gates96.com/4/8/68/78.html +http://www.outpersonals.com/cgi-bin/w3com/pws/out/CehIaxpSN7cGOeOUjXx_FtrylkakPWisW0DYq0MYmHwGxLBo7shB2XGSeXyvbnsBzHMJTZtmYOUK-XaaAW0Yh88wTY-Mms-hxw67Xaw8WMk3-vUJ4sXm4U7yIGdiN9XoPOqfnODrkqXYztjU6Var +http://www.brd.net/brd-cgi/brd_netzwerk?mailto&router&BZ85G0IL +http://power.luneng.com/power/library/jxgcs/jxgc99/jxgc9912/991204.htm +http://www.egroups.com/messages/Creative_Teaching/72?viscount=-30 +http://www.egroups.com/message/Creative_Teaching/85 +http://ftp.eecs.umich.edu/.1/people/elta/cusm-Javajae-elta/?D=A +http://polygraph.ircache.net:8181/cagliari/WHOWOULD.HTM +http://www.tiscover.ch/1Root/Kontinent/6/Staat/30/Bundesland/33/Ort/1564/Homepage/h_homepage...2.html +http://t-online.de/computer/haupt/intcoh87.htm +http://prodigy-sports.excite.com/ncaab/news/025uwire1 +http://wwwold.ifi.uni-klu.ac.at/Manuals/jdk1.1b3/docs/guide/awt/designspec/graphics/imagescale.html +http://www.taconet.com.tw/a6983/ +http://www.mapion.co.jp/custom/AOL/admi/13/13107/higashimukojima/3chome/index-3.html +http://www.mapion.co.jp/custom/AOL/admi/13/13107/higashimukojima/3chome/index-13.html +http://caller-times.com/autoconv/kickoff98/kickoff30.html +http://www.incestpornstories.com/bisexualbisexual/big-bonedmen/beautiesslanted-eyes/plus-sizeoverweight/{teenlink} +http://qcardsccg.safeshopper.com/8/359.htm?923 +http://qcardsccg.safeshopper.com/8/429.htm?923 +http://qcardsccg.safeshopper.com/8/433.htm?923 +http://lib1.nippon-foundation.or.jp/1997/0486/contents/011.htm +http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceOrderStatusOverview-BBC709F1_97EF_F357031944376B6D965FDC23BED4C6F4 +http://in.egroups.com/subscribe/muovimallit +http://multichat.de/fp/talk/cb-funk/4.htm +http://multichat.de/fp/talk/cb-funk/5.htm +http://www.jamba.de/KNet/_KNet-zfB8j1-EFd-13bkr/browse.de/node.0/cde7f2elw +http://www.jamba.de/KNet/_KNet-zfB8j1-EFd-13bl7/showInfo-jobs.de/node.0/cenv0b09a +http://152.80.49.210/PUBLIC/WXMAP/GLOBAL/AVN/2000103000/avn.prp.00-36.swasia.htm +http://retailer.gocollect.com/do/session/1912741/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/site_tour/index.asp +http://retailer.gocollect.com/do/session/1912741/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=2 +http://www.fogdog.com/cedroID/ssd3040183248168/nav/products/winter_sports/1b/shell_jackets/ +http://www.fogdog.com/cedroID/ssd3040183248168/nav/products/featured_brands/3c/all/ +http://kutschen.de/Schoner/literature/Sammlungen/modelle/collections/ +http://el-mundo.es/1999/06/04/television/04N0121.html +http://bitwise.tucows.com/win2k/htmlval2k_license.html +http://bbs.ee.ntu.edu.tw/boards/Saturn/3/7/12/5.html +http://ustlib.ust.hk/search*chi/deconomic+conditions+cameroon+to+1960/deconomic+conditions+cameroon+to+1960/-5,-1,0,B/browse +http://excite.de/kunst/katalog/865 +http://www2.hindustantimes.com/ht/nonfram/280498/detFRO07.htm +http://yp.gates96.com/11/69/0/60.html +http://yp.gates96.com/11/69/1/60.html +http://yp.gates96.com/11/69/1/72.html +http://yp.gates96.com/11/69/2/80.html +http://yp.gates96.com/11/69/3/7.html +http://yp.gates96.com/11/69/3/54.html +http://yp.gates96.com/11/69/3/66.html +http://yp.gates96.com/11/69/3/90.html +http://yp.gates96.com/11/69/3/91.html +http://yp.gates96.com/11/69/4/13.html +http://yp.gates96.com/11/69/4/18.html +http://yp.gates96.com/11/69/4/26.html +http://yp.gates96.com/11/69/4/70.html +http://yp.gates96.com/11/69/5/45.html +http://yp.gates96.com/11/69/5/77.html +http://yp.gates96.com/11/69/6/10.html +http://yp.gates96.com/11/69/6/80.html +http://yp.gates96.com/11/69/7/43.html +http://yp.gates96.com/11/69/7/76.html +http://yp.gates96.com/11/69/8/17.html +http://yp.gates96.com/11/69/8/33.html +http://yp.gates96.com/11/69/8/98.html +http://yp.gates96.com/11/69/9/3.html +http://yp.gates96.com/11/69/9/41.html +http://yp.gates96.com/11/69/9/92.html +http://store.peoplestour.com/kore/catalog/Music/R&B/G_by_artist/104757/product.html +http://free.prohosting.com/~seikyo/speak2.htm +http://pub.chinaccm.com/12/news/200009/16/160724.asp +http://pub.chinaccm.com/12/news/200008/11/155448.asp +http://www.fogdog.com/cedroID/ssd3040183305379/nav/products/featured_brands/12r/spa_products/ +http://itcareers.careercast.com/texis/it/itjs/+EwwBmev6D86ebtwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDacnwmaADdicnmtnaMwDwtnMnDBanDtoDnnGaMw55wqr15nBB5aqwpB1GnaoDhdGMwBodDaBnqrDdcdton5aMFqhTfR20DzmewrwwwpBmGeP0-dmwww5rmeNDwwwBrmeZpwww/jobpage.html +http://www.outdoorwire.com/content/lists/dirt/200004/msg00354.html?{LoadingFrameset} +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=5&discrim=186,22,8 +http://www.teleparc.com/sports/funski/02/03.htm +http://cn.egroups.com/post/safrica_bridge?act=reply&messageNum=43 +http://www.dfae.diplomatie.gouv.fr/culture/france/cinema/documentaires/recherche/francais/ethique.html +http://ring.toyama-ix.net/archives/mac/info-mac/_Communication/ctb/?D=A +http://www.eveclub.com/cgi-bin/eveclub.front/972959528284/Catalog/11000155 +http://www.eveclub.com/cgi-bin/eveclub.front/972959528284/Catalog/2000019 +http://cometweb01.comet.co.uk/do!session=132005&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG5ubLZDXLZolLl3l5jbqLljX5fkkKaotHlob5mloLq1 +http://cometweb01.comet.co.uk/do!session=132005&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG3XqLbdlLov4LfpmLiXvL-Zd5jbkLYozKvot0cZd5ockLYozKvsm0uts0cZX5qkXLjbzKKbiLbsfLpflLkp5 +http://www.ualberta.ca/CNS/RESEARCH/Software/SAS/cms/zfor-hex.htm +http://www.ualberta.ca/CNS/RESEARCH/Software/SAS/os390/zlibname.htm +http://genforum.genealogy.com/cgi-bin/print.cgi?hanrahan::175.html +http://library.bangor.ac.uk/search/dAIDS+(Disease)+--+Risk+factors+--+Psychological+aspects+--+Periodicals/daids+disease+risk+factors+psychological+aspects+periodicals/-5,1,1,B/frameset&F=daids+disease+research&1,1, +http://www.rismedia.com/consumer/27/12194/ +http://www.hole.kommune.no/hole/journweb.nsf/weboffjournal!OpenView&Start=39&Count=50&Expand=38 +http://www.etoys.com/prod/toy/53097261 +http://www.outpersonals.com/cgi-bin/w3com/pws/out/J6tI5danl1CaEvxOmyBVl8pzyaGqhs1RWIGq0aJ2_fwvzv4y9T7bHlxQKPzsrhMRN5HEI_Y9ZKrSvboCZvKhdwPPYK2klPp0EqNMO7Mb8fDTcz6xykQv8YQCQ2dy_iLZjbXwrknXqcH32HVSXAq7iUr4yIVG66IK +http://www.amcity.com/jacksonville/stories/1999/11/22/daily16.html?t=printable +http://moviestore.zap2it.com/browse/MOVIES/BOXERSHO/s.F0FWmEHm +http://moviestore.zap2it.com/browse/MOVIES/SHIRT/s.F0FWmEHm +http://moviestore.zap2it.com/browse/MOVIES/TIE/s.F0FWmEHm +http://moviestore.zap2it.com/browse/MOVIES/WATCH/s.F0FWmEHm +http://yp.gates96.com/11/25/30/0.html +http://yp.gates96.com/11/25/30/47.html +http://yp.gates96.com/11/25/31/87.html +http://yp.gates96.com/11/25/32/3.html +http://yp.gates96.com/11/25/32/61.html +http://yp.gates96.com/11/25/32/97.html +http://yp.gates96.com/11/25/33/6.html +http://yp.gates96.com/11/25/33/81.html +http://yp.gates96.com/11/25/33/83.html +http://yp.gates96.com/11/25/34/10.html +http://yp.gates96.com/11/25/34/35.html +http://yp.gates96.com/11/25/34/88.html +http://yp.gates96.com/11/25/34/90.html +http://yp.gates96.com/11/25/35/95.html +http://yp.gates96.com/11/25/36/19.html +http://yp.gates96.com/11/25/36/98.html +http://yp.gates96.com/11/25/37/61.html +http://yp.gates96.com/11/25/37/74.html +http://yp.gates96.com/11/25/38/2.html +http://yp.gates96.com/11/25/38/62.html +http://yp.gates96.com/11/25/39/1.html +http://yp.gates96.com/11/25/39/25.html +http://yp.gates96.com/11/25/39/85.html +http://yp.gates96.com/11/25/39/95.html +http://www.linux.com/networking/network/industry/server/community/Red_Hat/ +http://www.linux.com/networking/network/industry/server/community/Slashdot/ +http://www.linux.com/networking/network/industry/server/community/growth/ +http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/modules/by-category/16_Server_and_Daemon_Utilities/Server/DRUOSO/Server-FastPL-1.0.0.readme +http://ftp.nacamar.de/pub/NetBSD/NetBSD-current/pkgsrc/parallel/clusterit/pkg/DESCR +http://dk.egroups.com/login.cgi?login_target=%2Fgroup%2FGravesrus +http://www.maxfunds.com/MF1000.nsf/FUNDanalysisPrint/FGOAX +http://www.gbnf.com/genealog2/brothers/html/d0065/I12666.HTM +http://office.net/benelux/nld/downloadcatalog/dldpowerpoint.asp +http://yam.com/en/rand/ent/music/minfo/ +http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/Collect_DB_Advers2/2000-09-28/23/?N=D +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=22,11,35 +http://dk.egroups.com/messages/lafz/6 +http://www.online.kokusai.co.jp/Words/V0043555/wrd/G700/words/kana_main.html +http://adelaida.net/music/texts/pink75.html +http://support.tandy.com/support_audio/doc40/40914.htm +http://www.nutritionblvd.com/426162.html +http://www.nutritionblvd.com/426121.html +http://www.nutritionblvd.com/426117.html +http://www.fogdog.com/cedroID/ssd3040183301450/boutique/aaron_chang/ +http://www.fogdog.com/cedroID/ssd3040183301450/boutique/moving_comfort/ +http://www.fogdog.com/cedroID/ssd3040183301450/fly/ +http://in.egroups.com/login.cgi?login_target=%2Fmessage%2Finfogiappone%2F81 +http://in.egroups.com/post/infogiappone?act=reply&messageNum=81 +http://cn.egroups.com/message/1800list/5416 +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.slac.stanford.edu/grp/arb/tn/arbvol1/ARDB011.pdf +http://crrstv.tucows.com/winnt/adnload/135146_46908.html +http://syix.tucows.com/win2k/adnload/61785_28334.html +http://ftp.ccu.edu.tw/pub/language/tcl/sorted/packages-7.6/sound/xmpeg_0.5/ +http://www.eos.ncsu.edu/linux/LDP/LDP/khg/HyperNews/get/fs/fs/3.html +http://polygraph.ircache.net:8181/http_-2www.tvguide.com/sports/football/http_-2home.netscape.com/http_-2www.premaonline.com/http_-2www.ionet.net/~burndragon/form1.html +http://se.egroups.com/group/MyLuminaGoezBoom +http://www.diogenes.ch/4DACTION/web_rd_aut_show_author/a_id=7056553&tmpl=AUT_00&ID=483371 +http://www3.newstimes.com/archive97/apr0497/tvg.htm +http://dic.empas.com/show.tsp/?q=edger&f=B +http://www.brio.de/BRIO.catalog/39fe2f570905fb6a2740d472aa7806aa/UserTemplate/2 +http://itcareers.careercast.com/texis/it/itjs/+uwwBme7WD86eYtwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDaoDhdGMwBodDa5nq1GoBOanDtoDnnGaiw5roDtBdDanDBnGpGo5naGn31oGnmawGqroBnqB1Gna5O5BnM5aMFqhTfR20DzmehrwwwpBmeZWD86Nwww5rmekdwwwBrmeZpwww/jobpage.html +http://itcareers.careercast.com/texis/it/itjs/+pwwBmet5986twwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDaoDhdGMwBodDa5nq1GoBOanDtoDnnGaiw5roDtBdDanDBnGpGo5naGn31oGnmawGqroBnqB1Gna5O5BnM5aMFqhTfR20DzmehrwwwpBmeZWD86Nwww5rmekdwwwBrmeZpwww/morelike.html +http://biblioteca.upv.es/bib/doc/doc_fisbd/180/132317//C/1825784/0////25/S/MLTPAI +http://www.stanford.edu/~sevls/files/?M=D +http://library.bangor.ac.uk/search/dSystem+analysis+--+Periodicals/dsystem+analysis+periodicals/-17,-1,0,B/browse +http://mirror.ox.ac.uk/Mirrors/ftp.redhat.com/roughcuts/m68k/misc/src/install/pci-probing/CVS/ +http://yp.gates96.com/0/13/10/17.html +http://yp.gates96.com/0/13/11/26.html +http://yp.gates96.com/0/13/12/20.html +http://yp.gates96.com/0/13/12/24.html +http://yp.gates96.com/0/13/12/49.html +http://yp.gates96.com/0/13/13/22.html +http://yp.gates96.com/0/13/13/80.html +http://yp.gates96.com/0/13/15/8.html +http://yp.gates96.com/0/13/16/4.html +http://yp.gates96.com/0/13/16/18.html +http://yp.gates96.com/0/13/16/64.html +http://yp.gates96.com/0/13/17/15.html +http://yp.gates96.com/0/13/18/11.html +http://yp.gates96.com/0/13/18/18.html +http://yp.gates96.com/0/13/19/5.html +http://yp.gates96.com/0/13/19/22.html +http://yp.gates96.com/0/13/19/60.html +http://library.cuhk.edu.hk/search*chi/aYen-shou,+Shih,+904-975./ayen+shou+shih++904++975/-5,-1,0,E/2browse +http://china.sydney2000.com/StaticNews/2000-07-29/News372a86.htm +http://www.fujian-window.com/Fujian_w/news/mzrb1/20000724/3_1.html +http://www.fujian-window.com/Fujian_w/news/mzrb1/20000724/3_2.html +http://legalminds.lp.findlaw.com/list/law-lib/nav07807.html +http://ftp.fi.debian.org/debian/dists/woody/contrib/binary-sparc/tex/?N=D +http://community.webshots.com/photo/3635718/3636284GcTotmmONR +http://www.power2lead.com/Global/English.nsf/pgWWLocations!OpenPage&ExpandSection=23,24,25,17,10 +http://spaindustry.com/por/exp/911.html +http://niagara.tucows.com/winme/preview/10464.html +http://niagara.tucows.com/winme/adnload/138750_30032.html +http://niagara.tucows.com/winme/adnload/138743_30025.html +http://niagara.tucows.com/winme/adnload/138740_30023.html +http://retailer.gocollect.com/do/session/1912780/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/advanced_search.asp +http://preview.egroups.com/messages/UKMatrix +http://fi.egroups.com/login.cgi?login_target=%2Fmessage%2Fhecates_news%2F21 +http://pub.chinaccm.com/02/news/200005/31/133146.asp +http://pub.chinaccm.com/02/news/200005/31/133212.asp +http://localhost/test, +http://kuyper.calvin.edu/fathers2/ANF-02/anf02-25.htm +http://kuyper.calvin.edu/fathers2/ANF-02/anf02-56.htm +http://totalsports.aol.com/stats/bbo/mlb/mlb/990910.cle.AT.cws.box.html +http://totalsports.aol.com/stats/bbo/mlb/mlb/990915.nym.AT.col.box.html +http://totalsports.aol.com/stats/bbo/mlb/mlb/990919.cws.AT.tor.box.html +http://totalsports.aol.com/stats/bbo/mlb/mlb/990926.hou.AT.mil.box.html +http://totalsports.aol.com/stats/bbo/mlb/mlb/991003.nyy.AT.tam.box.html +http://totalsports.aol.com/stats/bbo/mlb/mlb/991006.bos.AT.cle.box.html +http://totalsports.aol.com/stats/bbo/mlb/mlb/ALscores.html +http://totalsports.aol.com/stats/bbo/mlb/mlb/CAT.ROS.pit.html +http://totalsports.aol.com/stats/bbo/mlb/mlb/NYY.CLE.pit.html +http://totalsports.aol.com/stats/bbo/mlb/mlb/mlb.ARI.recap.html +http://totalsports.aol.com/stats/bbo/mlb/mlb/mlb.atl.vs.hou.stat.html +http://www.jpc-music.com/2241771.htm +http://sunsite.org.uk/packages/TeX/uk-tex/macros/latex/contrib/supported/europs/?M=A +http://mitglied.tripod.de/blueblood/forum.html +http://kuyper.calvin.edu/fathers2/NPNF1-06/npnf1-06-92.htm +http://garbage.sonicnet.com/classical/features/Thomas,_Tilson/060500/index04.jhtml +http://dk.egroups.com/post/danish?act=forward&messageNum=6 +http://www.bornloser.com/comics/peanuts/f_profiles/html/f4b1.html +http://www.online.kokusai.co.jp/Home/V0043517/wrd/G100/ +http://www.affiliate.hpstore.hp.co.uk/do/session/380823/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/Main/acheterhp/ +http://www.bemi-immobilien.de/Landhaus-Bordeaux/Gemeinsam/versicherungen/lebensversicherung/Gemeinsam/Startseite/Top-Darlehens-Konditionen/Gemeinsam/erreichenPartner/email3d.htm +http://sunsite.org.uk/public/pub/Mirrors/ftp.hpc.uh.edu/pub/?D=A +http://genforum.genealogy.com/cgi-bin/print.cgi?tillery::418.html +http://ring.omp.ad.jp/archives/lang/perl/CPAN/authors/id/MSCHWARTZ/?M=A +http://montxsuz.all-hotels.com/usa/massachusetts/plymouth_e1.htm +http://montxsuz.all-hotels.com/usa/massachusetts/brewster_e1.htm +http://montxsuz.all-hotels.com/usa/massachusetts/edgartown_e1.htm +http://montxsuz.all-hotels.com/usa/massachusetts/north_dartmouth_e1.htm +http://montxsuz.all-hotels.com/usa/massachusetts/washington_e1.htm +http://romeo.univ-savoie.fr/winnt/adnload/51179_28892.html +http://www.dispatch.co.za/1998/12/02/sport/FALDO.HTM +http://www.dispatch.co.za/1998/12/02/sport/RACE2.HTM +http://store1.europe.yahoo.com/brink2/2000074707407.html +http://www34.yahoo.co.jp/horse/1999/tokyo/0530/result_08.html +http://members.tripod.co.jp/suiha_izumi/gallery-taikoubou-.htm +http://linuxberg.vol.at/gnomehtml/adnload/020-008-002-004_6145.html +http://books.hyperlink.com/bookdetails/Nuclear_Power_Plants_Worldwide/0810388804 +http://www.hudecek.de/gen/gen57.htm +http://www.hudecek.de/gen/gen61.htm +http://unofficial.capital.edu/students/kralph/ +http://web6.peopledaily.com.cn/gjjrb/200004/home.htm +http://www.gov.hk/hkma/eng/public/sccr/toc.htm +http://www4.50megs.com/johnphil29/86week3injury.htm +http://www4.50megs.com/johnphil29/86week3loupitlog.htm +http://naver22.juniornaver.co.kr/Entertainment_and_Arts/Performing_Arts/Theater/Musical/ +http://198.103.152.100/search*frc/dInfrastructure+(Economics)+--+Canada/dinfrastructure+economics+canada/-5,-1,0,B/frameset&F=dinfrastructure+economics&3,,0 +http://198.103.152.100/search*frc/dInfrastructure+(Economics)+--+Canada/dinfrastructure+economics+canada/-5,-1,0,B/frameset&F=dinfrastructure+economics&5,,0 +http://www.playgirl.dk/oncampus/feature/collegemovies/06.html +http://www.linux.com/networking/support/red_hat/internet/consumer/growth/ +http://www.linux.com/networking/support/red_hat/internet/consumer/mainstream/ +http://no.egroups.com/message/tengu-l/224 +http://no.egroups.com/message/tengu-l/229 +http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/Documentation/filesystems/romfs.txt?only_with_tag=LINUX-2_3_24 +http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/Documentation/filesystems/romfs.txt?only_with_tag=LINUX-2_3_22 +http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/Documentation/filesystems/romfs.txt?only_with_tag=LINUX-2_3_16 +http://sunsite.informatik.rwth-aachen.de/LinuxArchives/slackware/slackware/source/a/e2fsprog/?M=A +http://bbs.syu.ac.kr/NetBBS/Bbs.dll/ipspds018/lst/qqa/f/qqo/008A/zka/B2-kB2-p +http://stulchik.list.ru/catalog/13346.html +http://katalog.wp.pl/www/Biznes_i_Ekonomia/Firmy_Podzial_wg_Branz/Elektrotechnika_i_Energetyka/index25.html +http://www.fogdog.com/cedroID/ssd3040183313356/nav/stores/tennis/ +http://www.fogdog.com/cedroID/ssd3040183313356/customer_service/shop_by_catalog.html +http://193.207.57.3/cgi-win/hiweb.exe/a2/d13/b4,4,1f,4,4,, +http://ring.omp.ad.jp/archives/lang/perl/CPAN/modules/by-authors/id/JPRIT/Envy-2.45.readme +http://193.207.57.3/cgi-win/hiweb.exe/a2/d1342/b4,4,1f,e,e,, +http://library.wuhee.edu.cn/dzsy/military/china/army/002.htm +http://library.wuhee.edu.cn/dzsy/military/china/army/006.htm +http://library.wuhee.edu.cn/dzsy/military/china/army/059.htm +http://library.wuhee.edu.cn/dzsy/military/china/army/095.htm +http://polygraph.ircache.net:8181/http_-2www.geocities.com/TimesSquare/Maze/2075/http_-2www.yahoo.com/Science/Engineering/Mechanical_Engineering/corporate.htm +http://198.103.152.100/search*frc/aGundavaram,+Shishir/agundavaram+shishir/-17,-1,0,B/frameset&F=aguirdham+maureen&1,1 +http://findmail.com/message/geewhiz/21 +http://sound-dist.secured.co.uk/cgi-bin/psProdDet.cgi/19P02|972959597|Luggage|user|0|1,0,0,1 +http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|19P03|972959597|Luggage|user|0|1,0,0,1 +http://nme.com/AST/Discussion_Groups/CDA/Message_Search/1,1105,37_92-0-0-7,00.html +http://namviet.subportal.com/sn/Programming/Visual_Basic_Components_H-P/5638.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4963.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4810.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4735.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/3294.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/3329.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4689.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4646.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4582.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4587.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4154.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4607.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4600.html +http://www2.so-net.ne.jp/cinet/board/log/200001/messages/4571.html +http://www.gotocity.com/local/2/us/KS/g/67455/shopping/ +http://www.mapion.co.jp/custom/AOL/admi/13/13115/ogikubo/1chome/index-1.html +http://www.mapion.co.jp/custom/AOL/admi/13/13115/ogikubo/1chome/index-21.html +http://neuro-www.mgh.harvard.edu/forum_2/ChronicPainF/Capornottocapthatisthe.html +http://www.yagoo.co.kr/stats/pitching.asp?Mlbmanid=MIGDEL7299 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=50&discrim=165,233,7 +http://www.mirror.edu.cn/res/sunsite/pub/academic/literature/book-reviews/1994/8-August/?N=D +http://www.ferien-immobilien.de/ungarn/verkauf/Versteigerungen-IB/Startseite/Allgemeine-IB/Gemeinsam/versicherungen/gebaeude/Gemeinsam/vertriebspartner.htm +http://www.ferien-immobilien.de/ungarn/verkauf/Versteigerungen-IB/Startseite/Allgemeine-IB/Gemeinsam/versicherungen/gebaeude/Gemeinsam/feedback.html +http://www.bjd.com.cn/BJWB/20000401/GB/BJWB^10199^1^01W136.htm +http://pluto.beseen.com/boardroom/u/49766/ +http://amadeus.siba.fi/doc/bitchx/documentation/color.txt +http://www.ealingcommon.londonengland.co.uk/pensions.htm +http://pub8.ezboard.com/fthecriticalpoetsmessageboartheartofcritiquing.showMessage?topicID=11.topic&index=13 +http://pub8.ezboard.com/fthecriticalpoetsmessageboareverythingelse.showMessage?topicID=223.topic&index=10 +http://www.endocrine.ru/Meln_09_10_00/_vti_bin/shtml.exe/meln_post.htm?79 +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,0+9,3-12,0+18,0 +http://www.jobvillage.com/channel/jobs/media_communication/b.9255.g.1733.html +http://www.teenplatinum.com/barelylegal/no-boundarieshardcore/flashingbarely-legal/sweatingendurance/cuntamateur/chinesepetite/bootygay-bar/lubricationfellatio.html +http://www.babyheirlooms.com/catalog/htmlos.cat/001222.1.5246799112 +http://src.openresources.com/debian/src/utils/HTML/R/change_cur_jutil.html +http://genforum.genealogy.com/caudill/messages/389.html +http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959928076/Catalog/1000003 +http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959928076/ContentView/1000188/1/1201981 +http://www.marketingtool.com/contribute/webfirm/b.435.r.2416.html +http://dell.excite.co.jp/member_encounters/mailing_list/ml_for_women +http://www.angeredsgymn.se/doc/sdb/en/html/keylist.SIGNSET.html +http://map.ipc.co.jp/asp/onmap/r/new/g-27/f-525628/ +http://www.jpc-music.com/2549026.htm +http://www.egroups.com/message/nandscarolina/324?source=1 +http://www.jpc-music.com/2226499.htm +http://www.jpc-music.com/2226480.htm +http://tucows.bigskysoft.com/winnt/miscaudiont_rating.html +http://tucows.bigskysoft.com/winnt/adnload/69355_28370.html +http://www.hole.kommune.no/hole/journweb.nsf/weboffjournal!OpenView&Start=115.23&Count=50&Expand=130 +http://personal.atl.bellsouth.net/mia/a/j/ajcubas/ +http://yp.gates96.com/7/49/21/96.html +http://yp.gates96.com/7/49/22/39.html +http://yp.gates96.com/7/49/22/60.html +http://yp.gates96.com/7/49/22/70.html +http://yp.gates96.com/7/49/22/75.html +http://yp.gates96.com/7/49/23/8.html +http://yp.gates96.com/7/49/23/30.html +http://yp.gates96.com/7/49/23/43.html +http://yp.gates96.com/7/49/24/7.html +http://yp.gates96.com/7/49/24/8.html +http://yp.gates96.com/7/49/24/27.html +http://yp.gates96.com/7/49/24/49.html +http://yp.gates96.com/7/49/25/92.html +http://yp.gates96.com/7/49/26/56.html +http://yp.gates96.com/7/49/26/77.html +http://yp.gates96.com/7/49/28/23.html +http://yp.gates96.com/7/49/28/34.html +http://yp.gates96.com/7/49/29/56.html +http://yp.gates96.com/7/49/29/60.html +http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|38P08B|972959501|Communications|user|0|1,0,0,1 +http://193.207.57.3/cgi-win/hiweb.exe/a2/d170/b9,4,1f,1c,1c,, +http://wuarchive.wustl.edu/systems/linux/replay/debian/dists/unstable/non-US/binary-hurd-i386/?M=D +http://www.private-immobilien-boerse.de/friesland/verkauf/Ferien-IB/Startseite/Gemeinsam/MarketingStrategie/Allgemeine-IB/Startseite/Exklusiv-IB/Startseite/ +http://citeseer.nj.nec.com/update/269184 +http://citeseer.nj.nec.com/cidcontext/3266491 +http://citeseer.nj.nec.com/cidcontext/3266502 +http://genforum.genealogy.com/cgi-genforum/forums/hinkle.cgi?786 +http://eagle.synet.edu.cn/mirror/www.wisc.edu/grad/catalog/cals/biometry.html +http://cisne.sim.ucm.es/search*spi/cCDR7(035)TRA/ccdr7(035)tra/-5,-1,0,B/frameset&F=ccdr7(058)may&1,1 +http://www.wfg-rhein-lahn.de/goldenes-fass/schrott2.htm +http://www.jamba.nl/KNet/_KNet-6Aw8j1-pC4-ptt0/browse.nl/node.0/cdn40t70v +http://www.dcc.ufmg.br/Entnet/estrem/tsld018.htm +http://sites.uol.com.br/knaumann/DorstnerDrahtwerke.html +http://64.209.212.162/learnlots/step/0,2891,9+47+95+23413+12412_0,00.html +http://www.on-semiconductor.com/pub/prod/0,1824,productsm_ProductSummary_BasePartNumber=LM337A,00.html +http://jxi.gov.cn/yw-gn001.nsf/view!OpenView&Start=39.19&Count=30&Expand=53 +http://systemlogic.neoseeker.com/Games/Products/PC/dropship/dropship_reviews.html +http://link.fastpartner.com/do/session/600373/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/smartguy.php +http://www.bsv.ch/ch/d/sr/0_211_222_1/a10.html +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/contact.netscape.com/contact +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/entertainment.netscape.com/entertainment/ +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/games.netscape.com/computing/games/features/ +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/home.netscape.com/finance/taxes/ +http://link.fastpartner.com/do/session/600379/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/brleksaker.php +http://itcareers.careercast.com/texis/it/itjs/+TwwBmeOWD86eDhwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewPXwotoBwcaqconDBahoDwDqnaqddGmoDwBdGaqdMpwDon5aBnwMax1mtnBoDtaMwoDBnDwDqnapGdqn55n5aGn51MnaMFqryfHfREIDzmUwwwpBme+9D86Exww5rme7dwwwBrmeZpwww/jobpage.html +http://fi.egroups.com/message/handebol_aaagm/5?source=1 +http://www.crutchfield.com/cgi-bin/S-SHC3792E7De/viewcart.asp +http://www.links2go.org/more/www.asle.umn.edu/ +http://yp.gates96.com/7/69/10/58.html +http://yp.gates96.com/7/69/10/64.html +http://yp.gates96.com/7/69/10/76.html +http://yp.gates96.com/7/69/10/91.html +http://yp.gates96.com/7/69/11/31.html +http://yp.gates96.com/7/69/11/67.html +http://yp.gates96.com/7/69/11/70.html +http://yp.gates96.com/7/69/11/88.html +http://yp.gates96.com/7/69/11/96.html +http://yp.gates96.com/7/69/12/25.html +http://yp.gates96.com/7/69/12/29.html +http://yp.gates96.com/7/69/12/61.html +http://yp.gates96.com/7/69/12/65.html +http://yp.gates96.com/7/69/12/73.html +http://yp.gates96.com/7/69/13/30.html +http://yp.gates96.com/7/69/13/36.html +http://yp.gates96.com/7/69/14/8.html +http://yp.gates96.com/7/69/14/32.html +http://yp.gates96.com/7/69/14/54.html +http://yp.gates96.com/7/69/14/62.html +http://yp.gates96.com/7/69/14/83.html +http://yp.gates96.com/7/69/15/34.html +http://yp.gates96.com/7/69/15/87.html +http://yp.gates96.com/7/69/16/18.html +http://yp.gates96.com/7/69/17/5.html +http://yp.gates96.com/7/69/17/22.html +http://yp.gates96.com/7/69/17/44.html +http://yp.gates96.com/7/69/17/86.html +http://yp.gates96.com/7/69/17/88.html +http://yp.gates96.com/7/69/18/16.html +http://yp.gates96.com/7/69/18/83.html +http://yp.gates96.com/7/69/18/88.html +http://yp.gates96.com/7/69/19/0.html +http://yp.gates96.com/7/69/19/1.html +http://yp.gates96.com/7/69/19/97.html +http://213.36.119.69/do/session/152995/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/jeux/jeux_himalaya.html +http://www.egroups.com/post/sikhstudent?act=forward&messageNum=77 +http://ca.yahoo.com/Regional/U_S__States/Wisconsin/Metropolitan_Areas/Milwaukee_Metro/Business_and_Shopping/Shopping_and_Services/Food_and_Drink/Beverages/ +http://www.aelita.net/products/services/library/~archive/Download_redirect/company/news/default.htm +http://mindex.tucows.com/winme/preview/430.html +http://coda.nctu.edu.tw/vendors/DBMaker/DBMaker/driver/PHP/?S=A +http://www.streetprices.com/Electronics/Computer_Hardware_PC/Switches/Monitor/MAKE+BELKIN+COMPONENTS/sortproductbydesc/SP151043.html +http://wynnsystems.com/y9I_5aVd/careerlink.html +http://www.volny.cz/alik/akordy/zizen.htm +http://www.houses-apartment-listings.com/Michigan/city_search_criteria.asp?state=MI&City=CHAMPION +http://pub9.ezboard.com/fpyro1394pyro1394.showAddReplyScreenFromWeb?topicID=345.topic +http://www.maastrek.de/maas/01851471b455eff5cd01/1/0/1 +http://beta.mkn.co.uk/wine/order/champ2?what-mnw9=1 +http://beta.mkn.co.uk/wine/order/champ2?what-mnw14=1 +http://sunsite.org.uk/public/pub/packages/andrew/auis-6.3/overhead/ +http://www.ferien-immobilien.de/Spanien/Verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/Exklusiv-IB/Startseite/Gemeinsam/geschaeftsbedingungen.htm +http://www.trax.nilex.co.uk/trax.cgi/A1S/A2S/A3S/1AL/A2D/A1S/ +http://www.trax.nilex.co.uk/trax.cgi/A1S/A2S/A3S/1AL/A2D/C2S/ +http://tv.thevines.com/leaf/AA0000369148/3/1 +http://tv.thevines.com/leaf/AA0000369148/37/0/&favorite[join]=yes +http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/showFolder/100001/1304571 +http://freebsd.ntu.edu.tw/perl/modules/by-module/FileCache/ILYAZ/?D=A +http://www.highwired.net/Sport/Player/0,2291,2037-46698,00.html +http://www.nl.sco.com/unixware/adminguide/qs-11-32.html +http://www.online.kokusai.co.jp/Service/V0043502/wrd/G200/service/service.html +http://www.realize.com/ambe7581.htm,qt=e784fe2f=2a38a234-14-26557ed-80000000-0-0-3-- +http://www.realize.com/am9a7d81.htm,qt=e784fe2f=2a38a234-14-26557ed-80000000-0-0-3-- +http://www.geocities.co.jp/Colosseum/7952/dragon3.html +http://uk.dir.clubs.yahoo.com/Entertainment___Arts/Magic/~other/~White_Pages/2.html +http://yp.gates96.com/13/9/60/95.html +http://yp.gates96.com/13/9/60/97.html +http://yp.gates96.com/13/9/61/12.html +http://yp.gates96.com/13/9/61/42.html +http://yp.gates96.com/13/9/61/52.html +http://yp.gates96.com/13/9/62/13.html +http://yp.gates96.com/13/9/62/19.html +http://yp.gates96.com/13/9/62/32.html +http://yp.gates96.com/13/9/62/44.html +http://yp.gates96.com/13/9/62/75.html +http://yp.gates96.com/13/9/63/71.html +http://yp.gates96.com/13/9/63/89.html +http://yp.gates96.com/13/9/64/16.html +http://yp.gates96.com/13/9/64/64.html +http://yp.gates96.com/13/9/64/83.html +http://yp.gates96.com/13/9/65/15.html +http://yp.gates96.com/13/9/65/39.html +http://yp.gates96.com/13/9/65/81.html +http://yp.gates96.com/13/9/66/19.html +http://yp.gates96.com/13/9/66/51.html +http://yp.gates96.com/13/9/67/72.html +http://yp.gates96.com/13/9/67/75.html +http://yp.gates96.com/13/9/67/93.html +http://yp.gates96.com/13/9/67/94.html +http://yp.gates96.com/13/9/68/9.html +http://yp.gates96.com/13/9/68/14.html +http://yp.gates96.com/13/9/68/23.html +http://yp.gates96.com/13/9/68/39.html +http://yp.gates96.com/13/9/68/68.html +http://yp.gates96.com/13/9/69/22.html +http://yp.gates96.com/13/9/69/62.html +http://shop.intouch.de/cgi-bin/Eternit-Shop/1678827467/IconBar +http://www.jango.com/home_and_garden/outdoor_and_garden/gardening/outdoor_furniture/miscellaneous/?num=1&prod=7 +http://ring.omp.ad.jp/archives/lang/perl/CPAN/authors/id/SHERWOOD/CHECKSUMS +http://www.acad.polyu.edu.hk/spkg/sas8/sasdoc/hrddoc/indfiles/57263.htm +http://ftp.te.fcu.edu.tw/cpatch/system/mbm/source/?D=A +http://web1.localbusiness.com/Story/0,1118,SAN_11751,00.html +http://www.amulation.com/md-l-archive/199902/msg00357.html +http://ads3.zdnet.com/c/g=r1517&c=a53585&camp=c13878&idx=2000.10.30.21.32.11/www.sega.com/seganet +http://pub.chinaccm.com/23/news/200009/30/111206.asp +http://www.online.kokusai.co.jp/Service/V0043534/wrd/G200/service/service.html +http://www.buybuddy.com/sleuth/27/1/1060204/2992/ +http://www.friend4life.com/foreign-affair/infopage/info12655.htm +http://www.friend4life.com/women/info7867.htm +http://www.friend4life.com/women/info11637.htm +http://www.chabadlibrary.org/ecatalog/EC07/EC07328.HTM +http://tulips.ntu.edu.tw/search*chi/cJC311+S275+1992/cjc++311+s275+1992/7,-1,0,E/2browse +http://stationradio.subportal.com/sn/Network_and_Internet/Misc__Networking_Tools/866.html +http://www.canlii.org/ca/regu/sor88-278/sec2.html +http://www.rottentomato.com/movies/titles/traffic/click.php?review=1 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=4,26,16,35,15 +http://www.staroriental.net/nav/soeg/ihf,aai,n2,169,Electric+Wave+Girl+1998.html +http://www.staroriental.net/nav/soeg/ihf,aai,n2,176,Electric+Wave+Girl+1998.html +http://www.teenplatinum.com/barelylegal/bellyovary/parkingjail-bait/oral-sexoral-sex/big-bonedmen/sex/main.html +http://troy.lib.sfu.ca/search/snewsinc/snewsinc/-5,1,1,B/frameset&F=snewsbrief&1,,2 +http://biblio.cesga.es:81/search*gag/dLó%3Bpez+de+Medina,+Juan/dlopez+de+medina+juan/-5,-1,0,B/frameset&F=dlopez+de+ayala+pedro+critica+e+interpretacion&1,,2 +http://proxy.rmcnet.fr/udsp68/commissions.htm +http://proxy.rmcnet.fr/udsp68/csp_colmar.htm +http://yp.gates96.com/4/0/70/88.html +http://yp.gates96.com/4/0/71/51.html +http://yp.gates96.com/4/0/71/57.html +http://yp.gates96.com/4/0/71/84.html +http://yp.gates96.com/4/0/71/85.html +http://yp.gates96.com/4/0/72/84.html +http://yp.gates96.com/4/0/72/94.html +http://yp.gates96.com/4/0/73/15.html +http://yp.gates96.com/4/0/73/92.html +http://yp.gates96.com/4/0/74/96.html +http://yp.gates96.com/4/0/75/23.html +http://yp.gates96.com/4/0/75/94.html +http://yp.gates96.com/4/0/76/41.html +http://yp.gates96.com/4/0/76/82.html +http://yp.gates96.com/4/0/77/64.html +http://yp.gates96.com/4/0/78/93.html +http://yp.gates96.com/4/0/79/72.html +http://yp.gates96.com/4/0/79/82.html +http://fi.egroups.com/message/morehealth/13?source=1 +http://cn.egroups.com/message/Multicultural/489 +http://cn.egroups.com/message/Multicultural/495 +http://cn.egroups.com/message/Multicultural/497 +http://yp.gates96.com/4/1/60/54.html +http://yp.gates96.com/4/1/60/69.html +http://yp.gates96.com/4/1/61/83.html +http://yp.gates96.com/4/1/62/68.html +http://yp.gates96.com/4/1/63/13.html +http://yp.gates96.com/4/1/63/42.html +http://yp.gates96.com/4/1/63/61.html +http://yp.gates96.com/4/1/63/73.html +http://yp.gates96.com/4/1/64/15.html +http://yp.gates96.com/4/1/64/49.html +http://yp.gates96.com/4/1/64/54.html +http://yp.gates96.com/4/1/65/19.html +http://yp.gates96.com/4/1/65/26.html +http://yp.gates96.com/4/1/65/69.html +http://yp.gates96.com/4/1/65/98.html +http://yp.gates96.com/4/1/66/57.html +http://yp.gates96.com/4/1/66/62.html +http://yp.gates96.com/4/1/66/79.html +http://yp.gates96.com/4/1/66/86.html +http://yp.gates96.com/4/1/66/88.html +http://yp.gates96.com/4/1/67/6.html +http://yp.gates96.com/4/1/67/49.html +http://yp.gates96.com/4/1/67/76.html +http://yp.gates96.com/4/1/67/78.html +http://yp.gates96.com/4/1/68/57.html +http://yp.gates96.com/4/1/69/10.html +http://yp.gates96.com/4/1/69/47.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=blich&l=de +http://www.secinfo.com/d17xw.53m.htm +http://www.cs.unm.edu/sheppard-bin/igmdesc.cgi/n=shep/I1475 +http://home.pchome.com.tw/computer/54915491/data/data2.htm +http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/author/3910318 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=215&discrim=164,80,165 +http://library.bangor.ac.uk/search/cHN582+.R45+1991/chn++582+r45+1991/-5,-1,0,B/bibandlinks&F=chn++573+h313&1,1 +http://mai.flora.org/forum/new-2110 +http://www.tucows.telia.no/winnt/adnload/68747_30295.html +http://www.tucows.telia.no/winnt/adnload/135780_47081.html +http://www.annotate.net/html/Annotate_Directory/Top/Regional/North_America/United_States/Louisiana/Localities/C/Coushatta +http://wine.cc.chuo-u.ac.jp/home/pub/TeX/CTAN/support/mctex/?D=A +http://pub21.ezboard.com/ujaletheadmin.showPublicProfile?language=EN +http://ftp.lip6.fr/pub11/NetBSD/NetBSD-current/src/usr.sbin/quot/Makefile +http://www.hrdc.gc.ca/socpol/cfs/bulletins/jan97/man_f.shtml +http://www.loveme.com/infopage/info23899.htm +http://polygraph.ircache.net:8181/http_-2www.fsa.org/MutareMap.asp +http://www.sdrt.com.cn/tiyuzhichuang/wangqiu/mingxingdangan/4/gelafu.htm +http://home.netvigator.com/~raympoon/digital7.htm +http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/3d-service/Top-Darlehens-Konditionen/Startseite/Gemeinsam/immolink/Startseite/froben.htm +http://www.hum.auc.dk/~magnus/MHonArc/NTSEC/frm00999.html +http://www.hum.auc.dk/~magnus/MHonArc/NTSEC/frm09255.html +http://www.affiliate.hpstore.hp.co.uk/do/session/380849/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/entry.asp +http://genforum.genealogy.com/cgi-genforum/forums/skeen.cgi?265 +http://wiem.onet.pl/wiem/00f59f.html +http://www2.ipc.pku.edu.cn/scop/data/scop.1.007.033.001.002.000.html +http://splitrock.themes.tucows.com/cursors/adnload/15789.html +http://splitrock.themes.tucows.com/cursors/adnload/15884.html +http://www.cpami.gov.tw/ymsnp/animal/insect/34654text.htm +http://lateline.muzi.net/ll/fanti/89027.shtml +http://www.hig.se/(accessed,comment,date,header,quote)/~jackson/roxen/ +http://ftpsearch.belnet.be/ftp/packages/Linux-RedHat/up2date/rhl-6.0/alpha/README +http://ftpsearch.belnet.be/ftp/packages/Linux-RedHat/up2date/rhl-6.0/alpha/etc/ +http://ftpsearch.belnet.be/ftp/packages/Linux-RedHat/up2date/rhl-6.0/alpha/lib/ +http://polygraph.ircache.net:8181/services/define/http_-2www.microsoft.com/http_-2www.microsoft.com/ntserver/http_-2www.netscape.com/comprod/mirror/http_-2gateway.olympcfunding.com/products.html +http://polygraph.ircache.net:8181/services/define/http_-2www.microsoft.com/http_-2www.microsoft.com/ntserver/http_-2www.netscape.com/comprod/mirror/http_-2gateway.olympcfunding.com/products/ +http://f7.parsimony.net/forum9177/messages/638.htm +http://f7.parsimony.net/forum9177/messages/594.htm +http://japan.medscape.com/medscape/HIV/journal/1998/v04.n03/expert1098/expert1098.html +http://golfonline.comfluent.net/cgi.pan$advsts&Dicky_Pride&102&lwfth&pga?golfstats +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=93&discrim=5,200,183 +http://girls.4gee.com/japan/azumi_kawashima/big_page/0023.htm +http://www.jobvillage.com/channel/jobs/travel/travel_guide/b.4899.g.37.html +http://www.chaos.dk/sexriddle/b/o/q/p/ +http://www.osiris.978.org/~brianr/mirrors/olga/cowpie/m/mellencamp_john/?N=D +http://www.jpc-music.com/1695294.htm +http://sunsite.org.uk/packages/TeX/uk-tex/macros/latex/contrib/supported/t-angles/?D=A +http://www.shopworks.com/index.cfm/action/info/userid/000B34B5-2F17-19FE-9038010B0A0ADCF2 +http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Top-Darlehens-Konditionen/Gemeinsam/Startseite/Gemeinsam/Gemeinsam/versicherungen/gebaeude/Gemeinsam/Inserieren/onlineInserieren.htm +http://www.idgnet.com/crd_playstation_254384.html +http://www.3wbooks.de/BauerGunter/BauerGunter3406402798.htm +http://library.cwu.edu/search/dSports+--+Washington+(State)+--+Periodicals/dsports+washington+state+periodicals/-5,-1,0,B/request&F=dsports+university+of+michigan&1,,2 +http://www.aelita.net/products/library/sitemap/Reg/Subscribe/sitemap/Reg/QuoteRegister/Default.htm +http://topcu.tucows.com/winme/preview/76604.html +http://tonet.com.cn/zhuanyejihua/kaoshijihua/ligonglei/dianzizhuanyezhuanke.htm +http://tonet.com.cn/zhuanyejihua/kaoshijihua/falv2001.htm +http://tonet.com.cn/zhuanyejihua/kaoshijihua/caijinglei/gongshangqiyeguanlibenke.htm +http://ftp.univ-lyon1.fr/faq/by-name/cats-faq/breeds/american-curl +http://www.videos-erotism.com/xhuge/1/hardMid3.html +http://www.zope.org/Wikis/DevSite/Projects/CoreSessionTracking/WikiWikiWeb/map +http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/74461000003304200000112720000087451/Labels.wo/603110000077451/2.0.0.5.0/3/Webobjects1 +http://books.hyperlink.co.uk/bookinfo/Willa_Cathers_Transforming_Vision/Brienzo/Gary_W./0945636660 +http://ftp.darenet.dk/tucows/winme/adnload/137112_28604.html +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/TEKNIIKKA/korkeakoulukirjastot/yliopisto-+ja+korkeakoulukirjastot/insin%F6%F6rit/kirjastot/ +http://www.pokers.com/asp/sp-asp/_/SZ--2/PD--10017288/posters.htm +http://itcareers.careercast.com/texis/it/itjs/+RwwBmelXD86elmwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewhXwotoBwcaMnmowamoGnqBdGaDntdBowBodD5aqconDBaMwGAnBoDtapd5oBodDaMwDwtnainxawqqd1DBaMFqryfHfREIDzmbwwwpBmezWD86Wwww5rme9cwwwBrmeZpwww/jobpage.html +http://berlin-charlottenburg.de/deutsch/politik/ma/062.htm +http://www.ericsson.cl/cables/protection/index.shtml +http://209.207.239.212/bkindex/c1007/f1401.html +http://209.207.239.212/bkindex/c1007/f1418.html +http://www.neoseeker.com/forums/index.php?function=edit_message&messageid=1037 +http://www.neoseeker.com/forums/index.php?function=edit_message&messageid=1199 +http://www.geocities.co.jp/SweetHome-Green/3692/PROFILE.HTML +http://www.geocities.co.jp/SweetHome-Green/3692/MELINDEX.HTML +http://myhome.naver.com/bora1234/photo.html +http://www.magicvillage.de/magicvillage/computercenter/Grafik%20%26%20Layout/Software/Macintosh/Hotline/PowerBooks/ +http://student.monterey.edu/nr/panditharatnesha/world/ +http://in.egroups.com/message/Michelles__Miracles/657 +http://www.babyheirlooms.com/catalog/htmlos.cat/001248.1.5492769465 +http://republika.pl/raduczulu/counter.html +http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/OnlineCitiesSM/OnlineCitiesInteractiveCityGuides/bd378258019 +http://www.8848.net/fjnews/200007/0728/2000072811393979.htm +http://www.chaos.dk/sexriddle/m/n/x/t/ +http://www.maastrek.de/maas/01eea86f59dac641c053/1/0/4 +http://yp.gates96.com/14/79/82/8.html +http://yp.gates96.com/14/79/82/95.html +http://yp.gates96.com/14/79/82/98.html +http://yp.gates96.com/14/79/83/10.html +http://yp.gates96.com/14/79/83/16.html +http://yp.gates96.com/14/79/83/48.html +http://yp.gates96.com/14/79/84/4.html +http://yp.gates96.com/14/79/84/96.html +http://yp.gates96.com/14/79/85/34.html +http://yp.gates96.com/14/79/85/96.html +http://yp.gates96.com/14/79/86/9.html +http://yp.gates96.com/14/79/86/11.html +http://yp.gates96.com/14/79/86/28.html +http://yp.gates96.com/14/79/86/32.html +http://yp.gates96.com/14/79/86/86.html +http://yp.gates96.com/14/79/86/96.html +http://yp.gates96.com/14/79/87/96.html +http://yp.gates96.com/14/79/88/38.html +http://yp.gates96.com/14/79/88/74.html +http://yp.gates96.com/14/79/88/95.html +http://yp.gates96.com/14/79/89/57.html +http://autos.yahoo.co.jp/ucar/m1010/k10102006199904/g24/a101020060240158710008510205199904_4.html +http://www02.geocities.co.jp/HeartLand-Keyaki/7483/ +http://online.excite.de/wirtschaft/katalog/32476 +http://www9.hmv.co.uk:5555/do/session/1347777/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/Top_Navigation_Bar/top_navbar.html +http://www9.hmv.co.uk:5555/do/session/1347777/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d90_sd0_pt0.html +http://infoserv2.ita.doc.gov/efm/efm.nsf/Sources!OpenView&Start=5&Count=30&Collapse=54 +http://users.ai-lab.fh-furtwangen.de/for_local_use_only/CD-TMFUMV/daten/beisp/05321/?D=A +http://www.babyheirlooms.com/catalog/htmlos.cat/011629.1.0871727476 +http://www.fogdog.com/cedroID/ssd3040183241146/cgi-bin/MyFogdog +http://www.3w-geschichte.de/OReillyJamesT/OReillyJamesT0471287237.htm +http://www.annotate.net/html/Annotate_Directory/Top/Arts/Movies/Titles/W/World_According_to_Garp,The/ +http://dandini.cranfield.ac.uk/vl=-39536559/cl=151/nw=1/rpsv/cw/web/nw1/bargen.htm +http://cgi.superonline.com/cgi-bin/sworld43/thread.pl/forums/sworld43/oss2000/45.html?dir=nextResponse +http://cgi.superonline.com/cgi-bin/sworld43/get/forums/sworld43/oss2000/45.html?admin +http://dogbert.bizit.net/debian/dists/unstable/non-US/non-free/binary-sparc/?M=A +http://ftp.eecs.umich.edu/debian/dists/potato/main/binary-i386/misc/?D=A +http://fi.egroups.com/message/girlscouting/3383 +http://dk.egroups.com/group/scaleauto +http://members.tripod.lycos.co.kr/SM4/paper.htm +http://www.jamba.nl/KNet/_KNet-BqE8j1-JC4-pv4w/browse.nl/node.0/cde7f2elw +http://yp.gates96.com/4/6/10/47.html +http://yp.gates96.com/4/6/10/52.html +http://yp.gates96.com/4/6/10/96.html +http://yp.gates96.com/4/6/11/25.html +http://yp.gates96.com/4/6/11/61.html +http://yp.gates96.com/4/6/11/67.html +http://yp.gates96.com/4/6/11/93.html +http://yp.gates96.com/4/6/12/11.html +http://yp.gates96.com/4/6/12/28.html +http://yp.gates96.com/4/6/12/66.html +http://yp.gates96.com/4/6/12/81.html +http://yp.gates96.com/4/6/12/93.html +http://yp.gates96.com/4/6/13/86.html +http://yp.gates96.com/4/6/13/94.html +http://yp.gates96.com/4/6/14/17.html +http://yp.gates96.com/4/6/14/76.html +http://yp.gates96.com/4/6/15/61.html +http://yp.gates96.com/4/6/16/47.html +http://yp.gates96.com/4/6/16/71.html +http://yp.gates96.com/4/6/17/62.html +http://yp.gates96.com/4/6/18/1.html +http://yp.gates96.com/4/6/18/24.html +http://yp.gates96.com/4/6/18/28.html +http://158.169.50.70/eur-lex/it/lif/dat/1994/it_294D1217_09.html +http://158.169.50.70/eur-lex/it/lif/dat/1995/it_295D0928_02.html +http://158.169.50.70/eur-lex/it/lif/dat/1997/it_297D0904_03.html +http://www.irishnews.com/k_archive/181299/local4.html +http://www.irishnews.com/k_archive/181299/local14.html +http://www.irishnews.com/k_archive/181299/local16.html +http://uk.dir.yahoo.com/Regional/U_S__States/North_Carolina/Cities/Charlotte/Business_and_Shopping/Business_to_Business/Manufacturing/Casting__Moulding__and_Machining/ +http://www.uwec.edu/Academic/English/Projects/VonHaden/ +http://www.playease.com/et/beauty/img/jijinglian/jjl054.htm +http://www.digitaldrucke.de/(aktuell,für,marktplatz,metamorphose,raum,sense)/_fort/html/themen/kultur/digital/digital.htm +http://pub6.ezboard.com/fzfreesubmissiondirectoryplacestosubmitforfree.showMessage?topicID=35.topic +http://pub6.ezboard.com/fzfreesubmissiondirectoryplacestosubmitforfree.showMessage?topicID=12.topic +http://www.emerchandise.com/browse/DISNEY/TOY/b.FAVORITES%20COMICS%20CARTOONS%20DISNEY/s.CgJlPxcV +http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/showNextUnseen/fol/100001/1302769 +http://911codes.com/games/platform/gameboy/sect/div/cont/list_cheat/spray/y/id/0000010187/gid/0000003974/_cheats/_walkthroughs/_codes/_pc/_n64/_psx/_gameboy/_playstation/ +http://library.bangor.ac.uk/search/dPolice+regulations+--+Great+Britain/dpolice+regulations+great+britain/7,-1,0,E/frameset&F=dpolice+social+work+great+britain+congresses&1,1 +http://www02.u-page.so-net.ne.jp/ta2/grosh/Training/Training9.html +http://ring.shibaura-it.ac.jp/archives/linux/RedHat/redhat/code/i18n/trans/?D=A +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=15,35,22,28,26 +http://ftp.nacamar.de/pub/NetBSD/NetBSD-current/pkgsrc/graphics/ruby-gl/?S=A +http://www.academyfloral.com/state/aliro/flowers/birthdaybouquet1.html +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/KIRJASTO-+JA+TIETOPALVELUT/ammattikorkeakoulukirjastot/ammattikorkeakoulut/p%E4ij%E4t-h%E4meen+koulutuskonserni/kirjastot/ +http://www.jpc-music.com/1409509.htm +http://chat.sportsline.com/u/ce/feature/0,1518,2565545_56,00.html +http://chat.sportsline.com/u/ce/feature/0,1518,1675610_56,00.html +http://www.affiliate.hpstore.hp.co.uk/do/session/380831/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hpstore.hewlett-packard.fr/gp +http://209.207.239.212/bkindex/c1016/f1419.html +http://209.207.239.212/bkindex/c1016/f1424.html +http://www.sports.aol.fr/Jo/Perec_2.html +http://www.citybrazil.com.br/go/smiguelaraguaia/transporte.htm +http://www.fileamerica.com/states/texas/local/cameron/ptax.html +http://www.angelfire.com/nv/bellea +http://school.educities.org/card/a4711862.html +http://school.educities.org/card/a60902.html +http://school.educities.org/card/amy60630.html +http://school.educities.org/card/aney1.html +http://school.educities.org/card/christinelee.html +http://school.educities.org/card/grace3721.html +http://school.educities.org/card/jj1245j.html +http://school.educities.org/card/jyik.html +http://school.educities.org/card/k3813813.html +http://school.educities.org/card/k78780606.html +http://school.educities.org/card/kitty1snoopy.html +http://school.educities.org/card/landy1.html +http://school.educities.org/card/m0522.html +http://school.educities.org/card/mark747.html +http://school.educities.org/card/okdh.html +http://school.educities.org/card/poppybaby.html +http://school.educities.org/card/ry21.html +http://www.secinfo.com/dvtBm.7a.htm +http://www.craft-supplies.co.uk/cgi-bin/psProdDet.cgi/HT206|972959537|Deluxe_Dividers|user|0|0,0,1,1 +http://in.egroups.com/post/book-readers?act=forward&messageNum=3829 +http://www.nacion.co.cr/ln_ee/2000/enero/31/mundo10.html +http://www.bigstar.com/news/sb/index.cfm/4ae0978g371d907g1?fa=today +http://www.bigstar.com/cs/index.cfm/4ae0978g371d907g1?fa=privacy +http://v2.bdnet.com/I/Cailleaux/I/Cannabissimo/fiche_serie.htm +http://ftp.darenet.dk/tucows/winnt/adnload/12475_29978.html +http://ftp.darenet.dk/tucows/winnt/adnload/1879_29966.html +http://www.canit.se/(h1,k15,mail,unix,www)/support/ +http://byron17.home.chinaren.com/lit/novle/maio.htm +http://www.emerchandise.com/browse/PAGEANTS/MUG/b.FAVORITES%20PAGEANTS/s.Q8q0znEj +http://stulchik.list.ru/catalog/10310.html +http://stulchik.list.ru/catalog/10967.2.html +http://dada.tucows.com/adnload/70717_30131.html +http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/alpha/7677890 +http://webraft.its.unimelb.edu.au/196024/students/cabong/pub/?M=A +http://www.crutchfield.com/S-fFFHlZKyKNq/shop/ +http://www.earthsystems.org/gopher/seacnet/announce97-08-03-14/1994/aug94/94-08-25-18:%20Violence%20in%20Indian%20Country%20Over%20Waste +http://www.brio.de/BRIO.catalog/39fdb65f08c44c28273fd472aa7806e3/UserTemplate/10 +http://www.qsl.net/hj3ufa +http://www-jl.jl.cninfo.net/jlweb/book/wxtd/gu_long/chuliuxiang/bat/009.htm +http://www.intel.fr/support/netport/pro/21402.htm +http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957423999/957522544/Catalog/1375/001 +http://www01.u-page.so-net.ne.jp/qc4/sam-ft/gallerycraftspace.html +http://rpmfind.net/linux/RPM/mandrake/usr_src_linux-2.2.16_pcmcia-cs-3.1.14_doc_Tree.html +http://www.chrisgraef.de/chg/webdesigner_medien.html +http://www.opengroup.com/trbooks/186/1864501634.shtml +http://moviestore.zap2it.com/shopcart/s.1GUFVsoF +http://moviestore.zap2it.com/browse/MOVIES/ACTIONFI/s.1GUFVsoF +http://moviestore.zap2it.com/browse/MOVIES/PUPPET/s.1GUFVsoF +http://ocean.ntou.edu.tw/search*chi/m387.224+M178t/m387.224+m178+t/-5,-1,0,E/buttonframe&F=m387.224+m178+m&1,,0 +http://www.egroups.com/message/BalletBuds/25 +http://link.fastpartner.com/do/session/600375/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/create/learn.htm +http://www.vedomosti.spb.ru/2000/arts/spbved-2180-art-27.html +http://www.vedomosti.spb.ru/2000/arts/spbved-2180-art-42.html +http://www.vedomosti.spb.ru/2000/arts/spbved-2180-art-45.html +http://www.vedomosti.spb.ru/2000/arts/spbved-2180-art-46.html +http://www2.ipc.pku.edu.cn/scop/rsgen.cgi?pd=3nla +http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959900763/Catalog/1000006 +http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959900763/Catalog/1000031 +http://fi.egroups.com/message/gailporter/199 +http://fi.egroups.com/message/gailporter/222 +http://www.egroups.com/messages/X-Air_Ultralight_Aircraft/359 +http://dia.tucows.com/winme/adnload/136838_28375.html +http://dia.tucows.com/winme/adnload/136846_28383.html +http://www.letsmusic.co.kr/directory/weblink/weblink_list/1,1011,100000000186810,00.html +http://www.smcworld.com/smcworld/bp/large/0744_2_1611_2_1611b.html +http://news.pchome.com.tw/ettoday/entertainment/20001028/index-20001028155543020439.html +http://www2.stas.net/lostlane/J.html +http://allmacintosh.arrakis.es/utilsmac_rating.html +http://novel.hichinese.net/zt/zpj/k/kelisidi/kill/008.htm +http://194.174.50.23/cgi-bin/FisRun/InsertExhibitorIntoNotebook/1/interpack99/d/2891 +http://www.loisirs.ch/jifmuf/14/roedrz.html +http://www.linux.com/networking/server/business/operating_system/learning/consumer/ +http://dandini.cranfield.ac.uk/vl=-39685335/cl=158/nw=1/rpsv/cw/www/faqs.htm +http://blisty.internet.cz/1250/9901/19990108a.html +http://www.staroriental.net/nav/soeg/ihf,aai,n2,247,Electric+Wave+Girl+1998.html +http://www.multimania.com/excave/vicking.html +http://students.lsu.edu/students/main.nsf/Pages/CSISAJ1!OpenDocument&ExpandSection=5,14,21,12 +http://www.secinfo.com/dWXc8.bz.htm +http://www.secinfo.com/dWXc8.9d.htm +http://bbs.ee.ntu.edu.tw/boards/RomanceNovel/11/2/9/2/ +http://ftp.nacamar.de/pub/NetBSD/packages/1.4/amiga/emulators/?M=A +http://no.egroups.com/subscribe/windows98 +http://ftp.dei.uc.pt/pub/netscape/communicator/english/4.76/unix/unsupported/linux20_libc5/?D=A +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.gsb.stanford.edu/sloan/sloan_fellows.html +http://apple.excite.com/entertainment/music/artists_and_genres/alternative_rock/grunge/stone_temple_pilots/merchandise/ +http://home.sprynet.com/~tales/asw2.html +http://fi.egroups.com/post/audiovision?act=reply&messageNum=145 +http://www.zema.ru/post/forum/komi_respublika/usinsk/messages/712 +http://opac.lib.rpi.edu/search/ddesert+ecology/-5,-1,0,B/browse +http://www.arm.com/sitearchitek/support.ns4/html/sdt_debug!OpenDocument&ExpandSection=6,32,7,5 +http://www.linux.com/networking/network/technology/security/community/open_source/ +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=9,33,15,36,22 +http://isbn.nu/0505523892/borders +http://www.informika.ru/text/database/geom/Draw/ris/ris34_1.htm +http://caselaw.lp.findlaw.com/casecode/uscodes/42/chapters/77/subchapters/iii/parts/h/sections/section_6374_notes.html +http://www.cyd.com.cn/zqb/19991104/GB/9672^Q805.htm +http://providenet.tukids.tucows.com/win95nt/9-12/adnload/132963_46167.html +http://www.chaos.dk/sexriddle/e/o/g/k/i/ +http://www2.brent.gov.uk/planning.nsf/013459d30f2ad00680256623005fcc0a/8af30b42469a1215802568720046524a!OpenDocument&ExpandSection=16,13,11,9,15 +http://jje.subportal.com/sn/Multimedia_and_Graphics/MPEG_Audio_Players_and_Editors/9126.html +http://www.ropnet.ru/HyperNews/edit-response.pl/case/2856.html +http://www.eveclub.com/cgi-bin/eveclub.front/972959508447/Catalog/1000045 +http://itcareers.careercast.com/texis/it/itjs/+rwwBmeO9D86MwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewDXnnqrDoqwcaiGoBnapd5oBodDaxw5nmamdq1MnDBwBodDawppcoqwBodD5a15naM15BapGdm1qBodDawxcnaMFqtPfRRZNDzme8xwwwpBme7WD86eLrwww5rm-mwwBrmeZpwww/jobpage.html +http://www.iucr.ac.uk/iucr-top/journalsonline/iucr-top/cif/software/hiccup/prods/?M=A +http://lists.omnipotent.net/mysql/199707/msg00381.html +http://www.yescall.co.kr/kyungheein/ +http://minyos.its.rmit.edu.au/~s9763278/sparks/sparks.html +http://www.movieguide.com/pressroom/events/nbcpresstour/festival_nbcpresstour9.html +http://www.gamers.net/game/190940/reviews +http://www.staroriental.net/nav/soeg/ihf,aai,n2,198,Electric+Wave+Girl+1998.html +http://marysz.freeservers.com/cgi-bin/c/736/64/dXNlcmJhbm5lcg==/gn/6616/ +http://subversion.tigris.org/source/browse/subversion/subversion/libsvn_delta/delta.h?annotate=1.34&sortby=rev +http://subversion.tigris.org/source/browse/subversion/subversion/libsvn_delta/delta.h?annotate=1.28&sortby=rev +http://sunsite.org.uk/public/public/packages/WWW/spinner/?D=A +http://sunsite.org.uk/public/public/packages/WWW/spinner/untared/ +http://www.realbig.com/miata/miata/1998-01/1635.html +http://cky.8k.com/cgi-bin/framed/1359/info/jess.html +http://cky.8k.com/cgi-bin/framed/1359/info/bran.html +http://www.loisirs.ch/jifmuf/10/bhcqud.html +http://naver22.jrnaver.co.kr/Entertainment_and_Arts/Design_Arts/Architecture/Organizations/ +http://www.zing.com/member/?name=birchpole&c=1 +http://student.monterey.edu/nr/porrasjohnny/campus/ +http://ftp.lip6.fr/pub/FreeBSD/development/FreeBSD-CVS/ports/misc/peq/files/patch-ab,v +http://www.multimania.com/lesoir2/news/sept99/quake4.htm +http://www.multimania.com/lesoir2/news/sept99/2309-12.txt +http://www.multimania.com/lesoir2/news/sept99/0609-06.txt +http://www.multimania.com/lesoir2/news/sept99/1309-13.txt +http://homepage1.nifty.com/shiraishi/school/school2.htm +http://ring.htcn.ne.jp/pub/NetBSD/NetBSD-current/pkgsrc/mbone/sdr/pkg/PLIST +http://www.chaos.dk/sexriddle/m/c/z/b/ +http://www.chaos.dk/sexriddle/m/c/z/p/ +http://map.ipc.co.jp/asp/onmap/r/new/g-26/f-523824/ +http://www.nissan.co.jp/RENAULT-DEALERS/PASSPORT/view.cgi/admission/972959650-- +http://novel.hichinese.net/xd/gt/zpj/l/liangfengyi/jingrong/010.htm +http://www.tvstore.com/browse/TV/MAGNET/s.l03qOWiP +http://www.tvstore.com/browse/TV/KEYCHAIN/s.l03qOWiP +http://www.gbnf.com/genealog2/burt/html/d0002/I1199.HTM +http://www.gbnf.com/genealog2/burt/html/d0006/I1187.HTM +http://www.gbnf.com/genealog2/burt/html/d0004/I1521.HTM +http://src.openresources.com/debian/src/graphics/HTML/R/HVcreate.html +http://yomama.tgm.ac.at/doc/susehilf/gnu/vip/Changing.html +http://www.science.uva.nl/pub/NetBSD/NetBSD-current/pkgsrc/sysutils/gmc/pkg/ +http://news.fm365.com/zonghe/20001009/156610.htm +http://homepage1.nifty.com/tojo/shin13.htm +http://www.sf.digitalcity.com/naplesfl/personals/browse.dci?cat=wsw&sort=t +http://plat.debian.or.jp/debian/dists/woody/non-free/binary-hppa/otherosfs/?M=A +http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/databases/gdbm/distinfo?only_with_tag=RELEASE_4_1_0 +http://bbs.csie.ntu.edu.tw/txt/Emprisenovel/ebooks/mystery/alisanderla/wsyz/013.txt +http://www.legis.state.ia.us/GA/78GA/Legislation/SCR/00000/SCR00018/?M=D +http://www.mapion.co.jp/custom/AOL/admi/23/23104/kaminagoya/2chome/index-2.html +http://ciscom.cnet.com/hardware/member/entry/0,10285,0-1069-419-1544825,00.html +http://wow-online.vhm.de/Regional/Grossbritannien/Kunst.html +http://www.cs.rit.edu/~hpb/Man/_Man_Openwin_html/html2/sigaction.2.html +http://in.egroups.com/message/talksigncreate/287 +http://rainforest.parentsplace.com/dialog/thread.pl/newclubfoot8/19.html?dir=nextThread +http://ftp.jp.debian.org/debian-non-US/dists/potato/non-US/main/binary-arm/?N=D +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=baumelte&l=de +http://www.chaos.dk/sexriddle/i/f/p/k/h/ +http://unionsoft.narod.ru/3d/anatomy/pages/head1.htm +http://src.openresources.com/debian/src/electronics/acs_021.orig/acs-021.orig/ +http://www.mapion.co.jp/custom/AOL/admi/23/23111/takagicho/2chome/index-45.html +http://dennou-q.geo.kyushu-u.ac.jp/library/Linux/debian-jp/dists/unstable/contrib-jp/binary-m68k/tex/?N=D +http://rapidus.tucows.com/winnt/adnload/54123_28460.html +http://193.207.119.193/MV/gazzette_ufficiali/303-99/8.htm +http://www.emerchandise.com/help_security/b.TV%20FRASIER/s.LoO0xS99 +http://gpul.org/ftp/os/linux/cd-images/other/ISO/suse/?M=A +http://opac.lib.rpi.edu/search/arush+sean+c/-17,-1,0,E/frameset&arush+homer+f&1,,0 +http://genforum.genealogy.com/cgi-genforum/forums/griffin.cgi?3823 +http://www.leo.org/leoclick/dce2b1c893db6a8193428ecad9ecd878+L+1__ +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=55&discrim=178,230,174 +http://www.msb.malmo.se/search*swe/aKling,+Rolf/akling+rolf/7,-1,0,B/browse +http://retailer.gocollect.com/do/session/1912785/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/checkout/shopping_cart.asp +http://st3.yahoo.co.jp/nihondo/k4932828003023.html +http://webtools.familyeducation.com/whatworks/review/front/0,2562,1-10641-2316_-7233-3,00.html +http://www.bretagne-online.com/telegram/htdocs/archive/1997/19970618/sommaire/stpoldeleon.htm +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=234&discrim=235,230,183 +http://www.yagoo.co.kr/stats/batting.asp?Mlbmanid=HAMPAT7709 +http://www.linux.com/networking/network/new/website/suse/SAP/ +http://www.linux.com/networking/network/new/website/suse/security/ +http://javatest.a-net.nl/servlet/pedit.Main/http://www.cdc.gov/ncidod/dpd/parasiticpathways/drinkingwater.htm +http://www.across.or.jp/shizuoka/nbbs.cgi/seibu:n52/post +http://www.across.or.jp/shizuoka/nbbs.cgi/seibu:n52/450 +http://www.across.or.jp/shizuoka/nbbs.cgi/seibu:n52/607 +http://dangerous.co.kr/www.sony.co.jp/ProductsPark/Consumer/Peripheral/MDData/page6.html +http://www2.sega.co.jp/bbs/article/s/sports/47/xvwixh/jlvcgk.html +http://troy.lib.sfu.ca/search/alondon+mathematical+society/alondon+mathematical+society/-5,-1,0,B/frameset&F=alondon+m+c+s&2,,3 +http://pub14.ezboard.com/fbrlproductionsfrm10.showAddTopicScreenFromWeb +http://rex.skyline.net/html/Computers_-_Monitors.html?16,computers,radio,electronics,communication +http://rex.skyline.net/html/Software_-_Developers.html?20,computers,radio,electronics,communication +http://ftp.cwi.nl/static/publications/reports/abs/MAS-R9815.html +http://www.jt.com.br/noticias/98/09/28/sd2.htm +http://www.kentuckyconnect.com/heraldleader/news/080899/sportsdocs/08chuck.htm +http://pix.egroups.com/post/ipe?act=forward&messageNum=5302 +http://tulips.ntu.edu.tw/search*chi/cHT392+Un3/cht++392+un3/-5,-1,,B/browse +http://magazines.sina.com/gourmet/contents/199912/199912-006_3_gb.html +http://collection.nlc-bnc.ca/100/201/300/january/2000/00-06-05/sanctuary.html +http://collection.nlc-bnc.ca/100/201/300/january/2000/00-06-05/blue1.html +http://www.vorlesungen.uni-osnabrueck.de/informatik/pt/code/DiagramPalettes/Components.dpalette2/Image45 +http://www.vorlesungen.uni-osnabrueck.de/informatik/pt/code/DiagramPalettes/Components.dpalette2/Image5 +http://playsite.top263.net/software/hh-13.htm +http://www.dispatch.co.za/1998/12/21/sport/MISS.HTM +http://www.allhealth.com/parentsplace/send/0,3288,14-844-1-fertility-INFERTILITY,00.html +http://www.tucows.telia.no/win2k/preview/37705.html +http://www.peopledaily.co.jp/9803/09/current/newfiles/j1020.html +http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/Catalog/1320/001 +http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/Catalog/1321/001 +http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/Catalog/1328/001 +http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/Catalog/1350/001 +http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/Catalog/1359/001 +http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424007/957522556/ProductView/26897 +http://www.uftree.com/UFT/WebPages/Don_MacFarlane/FEB99/d1/i0001285.htm +http://wap.jamba.de/KNet/_KNet-n4B8j1-DFd-13bgt/showInfo-jambabanner.de/node.0/cde7f1uou +http://launchbase.com/Shopping/Visual_Arts/entertainment/information/Politics.htm +http://launchbase.com/Shopping/Visual_Arts/entertainment/shopping/Electronics.htm +http://www.aoyun.sina.com.cn/news/sports/table/2000-09-15/1/4622.shtml +http://www.eggerwirt.at/1Root/Kontinent/6/Staat/7/Bundesland/21/Ort/129509/Homepage/m_homepage...1.html +http://198.103.152.100/search*frc/dSociologie+rurale+--+Ontario/dsociologie+rurale+ontario/-5,-1,0,B/frameset&F=dsociologie+religieuse+islam&1,,0 +http://msn.excite.co.jp/travel/the_country/kinki/wakayama/hot_spring_of_accommodations/inn_tourist_home_in_wakayama?summary=false +http://search.ibm.co.jp/as400/year2000/v3r2.html +http://www.allgemeine-immobilien-boerse.de/nordrhein-Westfalen/Muehlheim-ruhr/Verkauf/Allgemeine-IB/Startseite/3d-service/Private-IB/Startseite/Gemeinsam/Super-Zins-Konditionen/anforderungsformular.htm +http://spaceports.tucows.com/winnt/adnload/78908_28797.html +http://www.trax.nilex.co.uk/trax.cgi/A1S/A2R/A3R/B1S/A1D/A1S/ +http://www.babyheirlooms.com/catalog/htmlos.cat/041130.1.3206884924 +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/music/misc/thoughts/lit/misc/colorart/misc/freespeech.html +http://www.cs.rit.edu/~hpb/Lectures/2000/JRMS_590/all-2.7.html +http://www.cs.rit.edu/~hpb/Lectures/2000/JRMS_590/all-4.11.html +http://www.refdag.nl/kl/990615klfo01.html +http://pub20.ezboard.com/ftheimperiumknightsfrm11.showMessage?topicID=9.topic +http://retailer.gocollect.com/do/session/1912767/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/advanced_search.asp +http://www.thestateofcolorado.com/saudealersnew.html +http://awelymor.weblogs.co.uk/sdb/en/html/ftp://ftp.suse.com/pub/suse/i386/6.2/suse/n1/ +http://www.mirror.kiev.ua:8083/paper/2000/21/1251/text/21-13-3.htm +http://www.recipezaar.com/browse/0110FC1070110A301109901109E00F06D +http://www.linux.com/networking/network/vpn/server/Unix/ +http://www.gasex.com/main.html?m4m.gallery.twinks +http://www.xtdnet.nl/listarch/linux-router/1998-05-01/nav00046.html +http://www.fogdog.com/cedroID/ssd3040183325831/cgi-bin/CedroCommerce?func=EditBasket +http://www.totalmarketing.com/an/basket.pl/cancel/xwxm6773.94076 +http://ciaoweb.tucows.com/winnt/adnload/56695_29112.html +http://www.brio.de/BRIO.catalog/39fe2f6006e4fc48273fd472aa7806e0/UserTemplate/1 +http://retailer.gocollect.com/do/session/1912715/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=2 +http://retailer.gocollect.com/do/session/1912715/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/dealer_lookup.asp +http://www.streetprices.com/Electronics/Computer_Hardware_PC/Motherboards/ATX/Slot1/Via_Pro133/sortproductbymake/sortcategorybylowprice/ +http://www.streetprices.com/Electronics/Computer_Hardware_PC/Projectors/MAKE+CTX/sortdetailbystock/sortproductbyhighprice/sortcategorybycount/SP318392.html +http://www.multimania.com/egypt95/img0017.htm +http://dic.empas.com/show.tsp/?q=fourteenthly&f=B +http://linux2.ipc.pku.edu.cn/scop/pdb.cgi?sid=d1repc2 +http://www.schlagertempel.de/RobertPayer/B00000B8D2.htm +http://www.cricinfo.com/link_to_database/INTERACTIVE/MAGAZINE/1996-97/SL_IN_NZ/SL_IN_NZ_FEEDBACK_1.html +http://mediate.magicbutton.net/do/session/625637/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-top50.html +http://www.clickm.dk/Clickmusic_Web_Guide/Bands_and_Artists/B/Better_Than_Ezra/ +http://www.clickm.dk/Clickmusic_Web_Guide/Bands_and_Artists/B/Breeders,_The/ +http://www.maastrek.de/maas/71eb3baf4c78ed98ef94/1/0/4 +http://www.trnonline.com/archives/1999archives/07221999/obits/24620.shtml +http://www.recipezaar.com/browse/0110FC1070110A100F06D0110A00110A3 +http://www.areaguide.net/addlisting.asp?book=box&CatID=516 +http://webraft.its.unimelb.edu.au/196023/students/lucym/ +http://sunsite.org.uk/public/0-Most-Packages/quake/utils/frontends/qshel15b.txt +http://pub14.ezboard.com/flfiaglarafabianisagoddess.emailToFriend?topicID=858.topic +http://www.realize.com/am4d0481.htm,qt=e784fe2f=2a38a234-4-7cf2ef-1-1-0-3-- +http://www.realize.com/am7bcd81.htm,qt=e784fe2f=2a38a234-4-7cf2ef-1-10-0-3-- +http://mailman.real-time.com/rte-crossfire/1993/Dec/msg00022.html +http://mailman.real-time.com/rte-crossfire/1993/Dec/msg00000.html +http://mailman.real-time.com/rte-crossfire/1993/Dec/msg00009.html +http://www.eallinfo.com/A55782/sameeron.nsf/homeFood!OpenPage&ExpandSection=8,4,3,6 +http://www.ami.dk/udgivelser/emne/36.html +http://www-x500-1.uni-giessen.de:8890/Lcn%3dKai%20Cheong%20HO,ou%3dEstates%20Management%20Office,o%3dHong%20Kong%20University%20of%20Science%20and%20Technology,c%3dHK +http://ftp.telepac.pt/pub/cpan/modules/by-module/DBD/DMOW/?D=A +http://members.se.tripod.de/aah/jochumsen/per02614.htm +http://www.academyfloral.com/state/cacat/flowers/funeralofferingshare.html +http://www.hotelboulevard.com/fr/paris/standard/htmlb877e62937802c0678f4638130be1ef0/sessionLang/ANG/prov/browse/cp/75013/resultatSearch.html +http://www.alsapresse.com/jdj/00/03/24/AK/article_4.html +http://www.mairie-montreuil93.fr/ville_pratique/environ/democrat/printemps/_vti_cnf/interstice.htm +http://variety.studiostore.com/help/b.FAVORITES%20COMICS%20CARTOONS%20POWERPUFF/s.UAREyMtL +http://ftp.sektornet.dk/tucows/winme/adnload/137341_28799.html +http://www.eveclub.com/cgi-bin/eveclub.front/972959532302/Catalog/1000046 +http://www.eveclub.com/cgi-bin/eveclub.front/972959532302/ClubBoard/list/1000022 +http://findmail.com/post/geewhiz?act=reply&messageNum=2039 +http://orders.mkn.co.uk/toy/rattles/order/now.en$NOK?what-bells=1 +http://www.buybuddy.com.au/sleuth/26/1/502/10134/ +http://spokesmanreview.sportshuddle.com/sports/baseball/playbetter/ask-expert/vincent3.asp +http://ant.i.hosei.ac.jp/Ant.WWW/PCD0420/HTMLE/29.html +http://ant.i.hosei.ac.jp/Ant.WWW/PCD0420/HTMLE/34.html +http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~S~074800~90270',00.html +http://builder.hw.net/frmRestDir/0,1112,'1~21~325~1~S~074800~09890',00.html +http://dennou-h.ees.hokudai.ac.jp/library/Linux/debian-jp/dists/hamm-jp/non-free/binary-i386/games/?M=A +http://www.peopledaily.com.cn/GB/paper68/1469/236625.html +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/koffice/kformula/BracketElement.cc?hideattic=1&sortby=rev +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/koffice/kformula/FractionElement.cc?hideattic=1&sortby=rev +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/koffice/kformula/MIMETYPE-Format?hideattic=1&sortby=rev +http://linuxberg.ii.net/conhtml/preview/7963.html +http://213.36.119.69/do/session/152992/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/hotels.html +http://213.36.119.69/do/session/152992/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.spycamera.com/webcam/ +http://ftp.netc.pt/pub/idgames/levels/doom/d-f/deathme.txt +http://ftp.netc.pt/pub/idgames/levels/doom/d-f/dork.txt +http://ustlib.ust.hk/search*chi/dsea+stories/dsea+stories/-5,-1,0,B/browse +http://members.fortunecity.com/skinweaver/nf/nfpin01.htm +http://se.egroups.com/group/French_ +http://www.gencat.es/cgi-bin/bc/drawer.cgi/LD/0074/L00465?101 +http://oss.sgi.com/cgi-bin/cvsweb.cgi/projects/ogl-sample/main/gfx/lib/glut/glut_shapes.c?sortby=author +http://www.teacherformation.org/html/od/facilitators.cfm/task1,about/discussion_id,2/xid,9456/yid,7276398 +http://genforum.genealogy.com/cgi-genforum/forums/getchell.cgi?230 +http://www9.hmv.co.uk:5555/do/session/1347795/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d100_sd0_pt0.html +http://www.brd.net/brd-cgi/brd_multimedia/bildbearbeitung/WZ01K0DJ/beurteilung/ci=972850465.htm +http://retailer.gocollect.com/do/session/1912745/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/affiliate_network.asp +http://www.fao.org/icatalog/orders/basket.asp?prev2=yes&aries_id=1310 +http://www.realestate-mls.com/list.cgi/VACANT_LAND|WATERFRONT|Edenville!Midland!MI +http://www.geocities.co.jp/SilkRoad-Desert/1661/profile/profile.html +http://hp-partner.whowhere.lycos.com/hp/chick/com/nj/ +http://hp-partner.whowhere.lycos.com/hp/chick/com/next/ +http://hp-partner.whowhere.lycos.com/hp/chick/com/nightflight/ +http://www.emerchandise.com/browse/FRIENDS/TSHIRT/20/10/b.TV%20FRIENDS/s.kGIgjr5i +http://dk.egroups.com/group/anarchymcgill +http://bbs.gznet.edu.cn/cgi-bin/getannounce//groups/GROUP_3/WinNT_Win2k/smthbbs/Dir002 +http://de.excite.de/computer/katalog/12947 +http://www.bizline.co.kr/library/data/002/001/007/008/020/002/000017.html +http://www.bizline.co.kr/library/data/002/001/007/008/020/002/000046.html +http://saleonall.com/cat/OPTOMA/6492/video/projectors/145336/oneprod.html +http://sun1.rrzn-user.uni-hannover.de/jgaertner/matlab/help/techdoc/newfeat/ch213.html +http://sun1.rrzn-user.uni-hannover.de/jgaertner/matlab/help/techdoc/newfeat/newfeat.html +http://excite.de/wirtschaft/katalog/37737 +http://www.digitaldrucke.de/(aktuell,kino,kultur,werbung)/_fort/html/themen/aktuell/events/events.htm +http://www.digitaldrucke.de/(aktuell,kino,kultur,kunst)/suche/uebersicht.html +http://www.online.kokusai.co.jp/Stock_corner/V0043566/wrd/G500/stock_corner/stock_corner.html +http://yp.gates96.com/4/37/0/92.html +http://yp.gates96.com/4/37/1/3.html +http://yp.gates96.com/4/37/1/38.html +http://yp.gates96.com/4/37/1/58.html +http://yp.gates96.com/4/37/2/21.html +http://yp.gates96.com/4/37/3/56.html +http://yp.gates96.com/4/37/3/68.html +http://yp.gates96.com/4/37/3/79.html +http://yp.gates96.com/4/37/4/1.html +http://yp.gates96.com/4/37/4/48.html +http://yp.gates96.com/4/37/4/99.html +http://yp.gates96.com/4/37/5/27.html +http://yp.gates96.com/4/37/6/1.html +http://yp.gates96.com/4/37/6/7.html +http://yp.gates96.com/4/37/6/80.html +http://yp.gates96.com/4/37/7/0.html +http://yp.gates96.com/4/37/7/5.html +http://yp.gates96.com/4/37/7/9.html +http://yp.gates96.com/4/37/7/12.html +http://yp.gates96.com/4/37/7/49.html +http://yp.gates96.com/4/37/7/97.html +http://yp.gates96.com/4/37/8/15.html +http://yp.gates96.com/4/37/8/32.html +http://yp.gates96.com/4/37/8/62.html +http://yp.gates96.com/4/37/8/76.html +http://yp.gates96.com/4/37/8/96.html +http://yp.gates96.com/4/37/9/12.html +http://yp.gates96.com/4/37/9/14.html +http://yp.gates96.com/4/37/9/23.html +http://yp.gates96.com/4/37/9/78.html +http://yp.gates96.com/4/37/9/80.html +http://cgi.cnn.com/US/9601/state_union_poll/state_union_speech/pm/ +http://freethemes.netc.pt/cursors/adnload/16904.html +http://freethemes.netc.pt/cursors/preview/16926.html +http://freethemes.netc.pt/cursors/adnload/16953.html +http://library.bangor.ac.uk/search/dTelevision+broadcasting+of+news+--+Wales/dtelevision+broadcasting+of+news+wales/-17,-1,0,B/frameset&F=dtelevision+broadcasting+moral+and+ethical+aspects&1,1 +http://home.baoding.cn.net/~snowcxm/photoshop/newpage6tp.htm +http://home.baoding.cn.net/~snowcxm/photoshop/newpage6xq2.htm +http://dennou-q.geo.kyushu-u.ac.jp/library/Linux/debian-jp/dists/woody/non-free-jp/binary-sparc/otherosfs/?D=A +http://www.tucows.ch/winnt/toolnt_size.html +http://www.sdinfonet.com.cn/379/26/379269983.htm +http://www.sdinfonet.com.cn/379/26/379269980.htm +http://www.egroups.com/message/wdf/3368 +http://de.excite.de/bildung/katalog/35821 +http://kidneyfailure.shn.net/content/article/1677.57596 +http://kidneyfailure.shn.net/content/article/1677.57625 +http://kidneyfailure.shn.net/content/article/1677.57517 +http://kidneyfailure.shn.net/content/article/1677.57456 +http://kidneyfailure.shn.net/content/article/1677.57562 +http://dia.tucows.com/winme/adnload/138490_29803.html +http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31062/lst/qqo/004A +http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31062/qry/zka/B2-kB23p/pno/0/qqatt/^ +http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31062/qry/zka/B2-kB2-n/pno/0/qqatt/^ +http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31062/qry/zka/B2-kB2-o/pno/0/qqatt/^ +http://dk.egroups.com/message/tw2002/3626 +http://dk.egroups.com/message/tw2002/3644 +http://www.spiral.at/Katalog/Artikel/8908435/ +http://www.spiral.at/Katalog/Artikel/8908842/ +http://168.160.224.62/insurance/200006/10/114941.asp +http://168.160.224.62/insurance/200006/10/114219.asp +http://tucows.soneraplaza.nl/termnt_license.html +http://pub13.ezboard.com/ubelegruin.showPublicProfile?language=EN +http://troy.lib.sfu.ca/search/tbiometrics/tbiometrics/-5,-1,0,B/exact&F=tbiometrical+genetics+the+study+of+continuous+variation&1,2/limit +http://futures.homeway.com.cn/lbi-html/news/content/20001013/172026.shtml +http://jproxy.uol.es/jproxy/http://www.channel6000.com/sh/sports/columnist/stories/columnists-20001030-154321.html +http://www.linux.com/networking/network/free/release/community/development/ +http://pub17.ezboard.com/fskysurfingskysurfersubb.showAddReplyScreenFromWeb?topicID=4.topic +http://ring.tains.tohoku.ac.jp/pub/linux/debian/debian-jp/dists/woody/contrib-jp/binary-m68k/oldlibs/?D=A +http://10000downloads.subportal.com/sn/Network_and_Internet/Misc__Communications_Tools/12507.html +http://www.hbdaily.com.cn/ctdsb/19991101/GB/ctdsb^1042^06^Ct06b08.htm +http://cytobase.cnusc.fr:8101/textes/PURDmail/1998-12/nav00129.html +http://www.brio.de/BRIO.catalog/39fe2f73050d53aa2741d472aa7806d2/UserTemplate/9 +http://www.anekdot.ru:8084/an/an0007/t000731.html +http://statweb.byu.edu/sasdoc/sashtml/gref/z0265802.htm +http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux/drivers/char/ftape/Makefile?only_with_tag=davem-cvs-merge +http://www.intellicast.com/Golf/World/UnitedStates/Southeast/NorthCarolina/Hawksnest/WINDcast/d1_00/bannerAd.shtml +http://dailynews.sina.com.hk/sinaNews/wiser/hkStock/2000/0720/1418727.html +http://ftp.dti.ad.jp/pub/lang/CPAN/authors/id/A/AG/AGUL/?S=A +http://link.fastpartner.com/do/session/600392/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/jobpilot.php +http://link.fastpartner.com/do/session/600392/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/smartguy.php +http://citeseer.nj.nec.com/cidcontext/1024594 +http://www.burstnet.com/ads/ad4820b-map.cgi/1395444997 +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdeutils/kpm/proc.h?r1=1.6&only_with_tag=HEAD +http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d0/i0001501.htm +http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d0/i0000641.htm +http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d1/i0000932.htm +http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d1/i0000762.htm +http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d1/i0000997.htm +http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/d1/i0001325.htm +http://www.uftree.com/UFT/WebPages/JenHawkins/ALL/nindex.htm +http://www.primenet.com/~g-lady/Farewell/_borders/ +http://imasy.or.jp/~iwao/hokkaido/kushiro.html +http://citeseer.nj.nec.com/nrelated/0/208436 +http://www.zeal.com/Arts___Entertainment/Literature/Authors/Lovecraft__H_P_/Books/Cthulhu_Campus_Crusade_for_Cthulhu/ +http://ftp1.se.debian.org/debian/dists/woody/contrib/binary-mipsel/mail/?M=A +http://ftp1.se.debian.org/debian/dists/woody/contrib/binary-mipsel/mail/?S=A +http://webtools.familyeducation.com/whatworks/item/front/0,2551,1-10698-1981-,00.html +http://www.affiliate.hpstore.hp.co.uk/do/session/380859/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/REGISTRATION/entry.asp +http://www.collectingnation.com/cgi-bin/bn/view_feedback.mod/pn?HANDLE=pokeweed +http://www.egroups.com/messages/Future-History-L/213 +http://www.egroups.com/message/Future-History-L/192 +http://www.burstnet.com/ads/cb7826a-map.cgi/1384588733 +http://www.cs.com.cn/csnews/articles/142_23823.htm +http://search.yam.com.tw/en/new/edu/hs/voca/tpc_vs/ +http://ftp.univie.ac.at/packages/tex/macros/latex2e/contrib/supported/vmargin/?D=A +http://citeseer.nj.nec.com/cidcontext/3145269 +http://yp.gates96.com/11/72/80/34.html +http://yp.gates96.com/11/72/80/36.html +http://yp.gates96.com/11/72/80/76.html +http://yp.gates96.com/11/72/81/26.html +http://yp.gates96.com/11/72/81/67.html +http://yp.gates96.com/11/72/83/68.html +http://yp.gates96.com/11/72/84/29.html +http://yp.gates96.com/11/72/84/39.html +http://yp.gates96.com/11/72/85/56.html +http://yp.gates96.com/11/72/85/63.html +http://yp.gates96.com/11/72/85/96.html +http://yp.gates96.com/11/72/86/3.html +http://yp.gates96.com/11/72/86/28.html +http://yp.gates96.com/11/72/86/59.html +http://yp.gates96.com/11/72/86/63.html +http://yp.gates96.com/11/72/88/43.html +http://yp.gates96.com/11/72/89/8.html +http://yp.gates96.com/11/72/89/13.html +http://yp.gates96.com/11/72/89/20.html +http://cometweb01.comet.co.uk/do!session=132039&vsid=700&tid=20&cid=37030&mid=1000&rid=1060&chid=1713&url=eqqLmwlGltt5tkkHbqpLZXmLbkZHljlKaltLkilLXalKfkaLbukKeqjLi1 +http://iworld.freethemes.com/savers/adnload/77213.html +http://iworld.freethemes.com/savers/adnload/35420.html +http://www.questlink.com/QL/CDA/Research/ProductBrief/1,1768,0_11201_353170_43264,00.html +http://www.questlink.com/QL/CDA/Research/ProductBrief/1,1768,0_11201_353170_43305,00.html +http://www2.eunet.lv/library/iso/HISTORY/RUSSIA/Mirrors +http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=10,3,5,16,14,6 +http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=17,3,5,16,14,6 +http://opac.lib.rpi.edu/search/dnatural+history+united+states+historiography+dictionaries/-17,-1,0,B/browse +http://opac.lib.rpi.edu/search/dnatural+history+united+states+historiography+dictionaries/7,-1,0,B/browse +http://www.sportinggreen.com/news/20001014/fbo/fbc/abb/001014.0391.html +http://yp.gates96.com/0/14/10/63.html +http://yp.gates96.com/0/14/10/80.html +http://yp.gates96.com/0/14/11/32.html +http://yp.gates96.com/0/14/11/37.html +http://yp.gates96.com/0/14/11/80.html +http://yp.gates96.com/0/14/13/21.html +http://yp.gates96.com/0/14/13/23.html +http://yp.gates96.com/0/14/13/38.html +http://yp.gates96.com/0/14/13/49.html +http://yp.gates96.com/0/14/13/90.html +http://yp.gates96.com/0/14/14/53.html +http://yp.gates96.com/0/14/14/63.html +http://yp.gates96.com/0/14/14/77.html +http://yp.gates96.com/0/14/15/12.html +http://yp.gates96.com/0/14/15/88.html +http://yp.gates96.com/0/14/15/96.html +http://yp.gates96.com/0/14/16/27.html +http://yp.gates96.com/0/14/16/62.html +http://yp.gates96.com/0/14/16/67.html +http://yp.gates96.com/0/14/16/86.html +http://yp.gates96.com/0/14/16/92.html +http://yp.gates96.com/0/14/17/15.html +http://yp.gates96.com/0/14/17/22.html +http://yp.gates96.com/0/14/17/44.html +http://yp.gates96.com/0/14/18/27.html +http://yp.gates96.com/0/14/18/29.html +http://yp.gates96.com/0/14/18/83.html +http://yp.gates96.com/0/14/19/35.html +http://yp.gates96.com/0/14/19/58.html +http://www.123bestphonerates.com/q/001p/vn/ZWUdEJwdxM.htm +http://www.trax.nilex.co.uk/trax.cgi/A1C/B1U/A2S/B3L/A4S/B1L/ +http://www.trax.nilex.co.uk/trax.cgi/A1C/B1U/A2S/B3L/A4S/C2D/ +http://southwind.themes.tucows.com/skins/icq/preview/68532.html +http://southwind.themes.tucows.com/skins/icq/adnload/77797.html +http://southwind.themes.tucows.com/skins/icq/preview/55623.html +http://southwind.themes.tucows.com/skins/icq/adnload/51324.html +http://southwind.themes.tucows.com/skins/icq/adnload/26609.html +http://southwind.themes.tucows.com/skins/icq/adnload/48629.html +http://southwind.themes.tucows.com/skins/icq/adnload/48628.html +http://www.webcom.com.mx/cronica/1999/mar/09/neg01.html +http://jproxy.uol.es/jproxy/http://mars.jpl.nasa.gov/msp98/news/mpl000207.html +http://jproxy.uol.es/jproxy/http://mars.jpl.nasa.gov/msp98/news/news61.html +http://jproxy.uol.es/jproxy/http://mars.jpl.nasa.gov/msp98/ds2/fact.html +http://jproxy.uol.es/jproxy/http://mars.jpl.nasa.gov/mgs/sci/mola/98lander.html +http://jproxy.uol.es/jproxy/http://mars.jpl.nasa.gov/msp98/news/status990123.html +http://ustlib.ust.hk/search*chi/dmarriage/dmarriage/-5,-1,0,B/exact&F=dmarriage+china&1,4/limit +http://mediate.magicbutton.net/do/session/625641/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-artc.html +http://www.scifi.com/cgi-bin/rbox/articles.pl?1&6&1721&20 +http://www.areteoutdoors.com/contribute/earth/b.97.r.54.g.1706.html +http://members.tripod.lycos.co.kr/ifoo6981/?M=A +http://link.fastpartner.com/do/session/600395/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/bol.php +http://link.fastpartner.com/do/session/600395/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mediatransfer.php +http://link.fastpartner.com/do/session/600395/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/smartguy.php +http://www.safrex.com/catalog/elite08/elite084c.html +http://www.911codes.com/games/platform/psx/sect/div/cont/list_cheat/spray/y/id/0000005511/gid/0000003893/_cheats/_walkthroughs/_codes/_pc/_n64/_psx/_gameboy/_playstation/ +http://yp.gates96.com/7/44/10/4.html +http://yp.gates96.com/7/44/10/15.html +http://yp.gates96.com/7/44/10/30.html +http://yp.gates96.com/7/44/10/32.html +http://yp.gates96.com/7/44/10/36.html +http://yp.gates96.com/7/44/11/1.html +http://yp.gates96.com/7/44/11/41.html +http://yp.gates96.com/7/44/11/44.html +http://yp.gates96.com/7/44/12/29.html +http://yp.gates96.com/7/44/12/76.html +http://yp.gates96.com/7/44/12/81.html +http://yp.gates96.com/7/44/13/56.html +http://yp.gates96.com/7/44/14/19.html +http://yp.gates96.com/7/44/15/14.html +http://yp.gates96.com/7/44/15/52.html +http://yp.gates96.com/7/44/15/62.html +http://yp.gates96.com/7/44/15/72.html +http://yp.gates96.com/7/44/15/78.html +http://yp.gates96.com/7/44/15/81.html +http://yp.gates96.com/7/44/15/82.html +http://yp.gates96.com/7/44/16/78.html +http://yp.gates96.com/7/44/16/93.html +http://yp.gates96.com/7/44/17/51.html +http://yp.gates96.com/7/44/17/75.html +http://yp.gates96.com/7/44/18/43.html +http://yp.gates96.com/7/44/18/92.html +http://yp.gates96.com/7/44/19/26.html +http://www3.newstimes.com/archive2000/oct17/bze.htm +http://member.aol.co%20m/askmo/ +http://home.excite.co.uk/directory/categories/528195 +http://www.scifi.com/bboard/browse.cgi/1/5/545/11566?pnum=1 +http://member.shangdu.net/home1/havdone/game/gonglue/ljcq.htm +http://member.shangdu.net/home1/havdone/game/gonglue/lishou.htm +http://archiv.leo.org/cgi-bin/leo-md5.pl/pub/comp/usenet/comp.sources.misc/dostrace/ +http://yp.gates96.com/8/70/91/12.html +http://yp.gates96.com/8/70/91/20.html +http://yp.gates96.com/8/70/91/45.html +http://yp.gates96.com/8/70/92/29.html +http://yp.gates96.com/8/70/92/40.html +http://yp.gates96.com/8/70/92/74.html +http://yp.gates96.com/8/70/93/9.html +http://yp.gates96.com/8/70/93/11.html +http://yp.gates96.com/8/70/94/10.html +http://yp.gates96.com/8/70/94/90.html +http://yp.gates96.com/8/70/95/4.html +http://yp.gates96.com/8/70/95/13.html +http://yp.gates96.com/8/70/95/58.html +http://yp.gates96.com/8/70/95/74.html +http://yp.gates96.com/8/70/95/80.html +http://yp.gates96.com/8/70/96/34.html +http://yp.gates96.com/8/70/96/65.html +http://yp.gates96.com/8/70/97/0.html +http://yp.gates96.com/8/70/97/16.html +http://yp.gates96.com/8/70/97/75.html +http://yp.gates96.com/8/70/98/27.html +http://yp.gates96.com/8/70/98/60.html +http://www.icopyright.com/1.1638.306154 +http://www.zeal.com/category/be_zealous.jhtml?cid=828 +http://lib1.nippon-foundation.or.jp/1996/0621/contents/004.htm +http://www.haikou.hainan.gov.cn/pandect/nj/n96jada.htm +http://www.chaos.dk/sexriddle/s/e/x/p/b/m/s/ +http://www.symantec.ca/region/uk/resources/mobile/nav.html +http://retailer.gocollect.com/do/session/1912798/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/products/product_lines.asp +http://polygraph.ircache.net:8181/services/define/http_-2www.microsoft.com/ie/Tabitha/http_-2www.adultlinks.net/gallery.shtml +http://f22.parsimony.net/forum42460/messages/1.htm +http://www.greenleaves.com/bookcat/gb_0722530986.html +http://www.classiccmp.org/mail-archive/classiccmp/1998-06/0638.html +http://www1.onelist.com/dir/Society/Paranormal/UFOs/Biblical_Perspectives +http://home.hiwaay.net/~bjacobs/genealogy/laster/html/d0055/g0000045.html +http://link.fastpartner.com/do/session/600374/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/netmaling.php +http://big5.peopledaily.com.cn/haiwai/200003/03/newfiles/A104.html +http://ustlib.ust.hk/search*chi/achang+chieh+mei/achang+chieh+mei/-5,-1,0,B/frameset&F=achang+chieh+fu&1,,2 +http://teleline.terra.es/personal/mgsair/chtml/ejemplos/marcos1.html +http://myhome.naver.com/toktok01/bbs.php3?p_work=admin&p_page=1 +http://netway.pda.tucows.com/palm/adnload/34443_22051.html +http://netway.pda.tucows.com/palm/adnload/34930_22057.html +http://netway.pda.tucows.com/palm/adnload/34435_22044.html +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kmusic/brahms/qtWaveTrack.h?sortby=rev&only_with_tag=HEAD +http://sinr.net/book/content/39/8411.html +http://www.egroups.com/post/gvocsa?act=reply&messageNum=145 +http://www.diogenes.ch/4DACTION/web_rd_aut_prview/a_id=7056669&area=&ID=483352 +http://www.brio.de/BRIO.catalog/39fe2f7d06fe4a08273fd472aa7806a9/UserTemplate/1 +http://www3.newstimes.com/archive2000/sep01/rgd.htm +http://community.webshots.com/photo/5886633/5886821zAagKCgZhs +http://community.webshots.com/photo/5886633/5917061PxBHHqElgV +http://www.dnai.com/~mbaum/anita/html/eng/art/images/image38.html +http://www.houses-apartment-listings.com/Michigan/city_search_criteria.asp?state=MI&City=CLINTON +http://www.brio.de/BRIO.catalog/39fdb87c09896af6273fd472aa78076c/UserTemplate/10 +http://www.expressindia.com/ie/daily/19990129/02950495p.html +http://www.linux.com/networking/web/unix/internet/project/security/ +http://www.linux.com/networking/web/unix/internet/project/Red_Hat/ +http://www.linux.com/networking/web/unix/internet/project/freshmeat/ +http://www.linux.com/networking/web/unix/internet/project/?kw_offset=50 +http://ring.yamanashi.ac.jp/pub/linux/debian/debian/dists/Debian2.2r0/non-free/binary-i386/science/?N=D +http://ftp.task.gda.pl/pub/games/idgames/utils/level_edit/acaddoom.txt +http://www.affiliate.hpstore.hp.co.uk/do/session/380864/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp +http://fi.egroups.com/post/allianc?act=reply&messageNum=2305 +http://polygraph.ircache.net:8181/services/design/company/http_-2burn.ucsd.edu/~abcf +http://polygraph.ircache.net:8181/services/design/company/miami.htm +http://www.utexas.edu/ftp/admin/AI_ATTIC/ATW/Mosaic.instruct/?D=A +http://ftp.du.se/disk3/redhat/updates/powertools/current/alpha/ +http://www.multicosm.com/facade/demo.multicosm.com/facade/www.informationweek.com/mediakit/00/default.html +http://www.multicosm.com/facade/demo.multicosm.com/facade/www.informationweek.com/mediakit/00/about_overview.html +http://www7.tok2.com/home/maki67/menu.htm +http://www.mapion.co.jp/custom/AOL/admi/23/23103/tsujicho/2chome/index-24.html +http://sunsite.org.uk/public/computing/networks/internet/ietf/printmib/printmib-attendees-97apr.txt +http://ftp.univie.ac.at/packages/tex/macros/latex2e/contrib/supported/nomencl/?N=D +http://spaceports.tucows.com/winme/adnload/137993_30287.html +http://habenix.uni-muenster.de/Rektorat/Forschungsberichte-1997-1998/fo05acd01.htm +http://www.power2lead.com/Global/English.nsf/pgWWLocations!OpenPage&ExpandSection=2,25,7,32,18 +http://www.teacherformation.org/html/od/facilitators.cfm/task1,help/discussion_id,2/xid,6155/yid,3651726 +http://itcareers.careercast.com/texis/it/itjs/+IwwBmeS9D867xwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew7hmwGAnBoDtapGdtGwMamnVncdpa51ppdGBaqconDBaqdMM1DoqwBodDaoDVn5BMnDBapGdm1qBaMwDwtnaqGnwBoVnaMFqhgfHNEDzm7wwwpBmeg9D86exqwww5rmeqDwwwBrmeZpwww/morelike.html +http://itcareers.careercast.com/texis/it/itjs/+XwwBmie0B-deaqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew7hmwGAnBoDtapGdtGwMamnVncdpa51ppdGBaqconDBaqdMM1DoqwBodDaoDVn5BMnDBapGdm1qBaMwDwtnaqGnwBoVnaMFqhgfHNEDzm7wwwpBmeg9D86exqwww5rm-mwwBrmeZpwww/morelike.html +http://members.iinet.net.au/~scott3/legacy/matt.html +http://cn.egroups.com/post/bastardimage?act=forward&messageNum=11 +http://ftp.nodomainname.net/pub/mirrors/.2/gnu/tasks/?N=D +http://ftp.nodomainname.net/pub/mirrors/.2/gnu/tasks/standards.text +http://10000downloads.subportal.com/sn/Utilities/Misc__Utilities/11320.html +http://mindit.netmind.com/proxy/http://www.altera.com/html/tools/swupdates.html +http://www.next.com.hk/mag/419/news/an06.htm +http://www.areteoutdoors.com/channel/air/b.283.g.3871.html +http://troop485.tripod.com/documents/johnwayne.htm +http://troop485.tripod.com/documents/bp-churchhill.htm +http://sound-dist.secured.co.uk/cgi-bin/psProdDet.cgi/22P03|972959558|Security|user|0|1,0,0,1 +http://www9.hmv.co.uk:5555/do/session/1347794/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d120_sd0_pt0.html +http://ftp.du.se/debian/dists/Debian2.2r0/main/disks-m68k/2.2.16-2000-07-14/mac/images-1.44/?S=A +http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bp20043193/-5,-1,0,B/buttonframe&F=bp20043190&1,1 +http://www.parlament.ch/internet98/Poly/Suchen_amtl_Bulletin/ce98/ete/275.HTM +http://in.egroups.com/messages/svpvril/5195?viscount=-30 +http://in.egroups.com/messages/svpvril/?expand=1 +http://retailer.gocollect.com/do/session/1912744/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/checkout/shopping_cart.asp +http://retailer.gocollect.com/do/session/1912744/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp +http://www18.freeweb.ne.jp/sports/imamako/ +http://www.cs.ucc.ie/javadocs/jdk1.2.2/docs/api/java/awt/geom/class-use/QuadCurve2D.Double.html +http://click-to.tell-a-friend.boardhost.com/tell-a-friend-confirm.cgi?stigmaonline&msg=172 +http://www.emerchandise.com/aboutus/b.TV%20ANGEL/s.2YYjVOgH +http://www.leyou.com/product/ShowResult.php?LY_Category=0531&page=3 +http://cafe6.daum.net/Cafe-bin/Bbs.cgi/rest114pds/qry/zka/B2-kB23o/qqatt/^ +http://sunsite.informatik.rwth-aachen.de/LinuxArchives/sunsite.unc.edu/distributions/linux-router/dists/2.9.6/base/?N=D +http://www-uk5.cricket.org/link_to_database/ARCHIVE/1999-2000/PAK_IN_SL/FANTASY/ +http://findmail.com/message/sangersreview/99 +http://phase.etl.go.jp/mirrors/netlib/utk/people/JackDongarra/SLIDES/osu-498/sld011.htm +http://tucows.datasync.com/winme/preview/75261.html +http://secure.danysoft.com/asp/dany.tienda/1266636789/Catalog +http://www.birding.about.com/hobbies/birding/cs/placesecuador/index_2.htm +http://www.cpami.gov.tw/ymsnp/animal/fauna/nospc385text.htm +http://www.fh-telekom-leipzig.de/hilfe/pak_e/paket_inhalt_jade_dsl.html +http://home.vicnet.net.au/~nunayl/feedback.html +http://www.expage.com/nibina +http://www.expage.com/virtuaalisiittolantallivihko +http://www.expage.com/muittentallijenkisoja +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=9,39,33 +http://retailer.gocollect.com/do/session/1912707/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=2 +http://www.streetprices.com/Electronics/Other/MAKE+SYMANTEC/sortdetailbystock/SP322647.html +http://www.peopledaily.co.jp/haiwai/199810/09/no_981009003024_6.html +http://mediate.magicbutton.net/do/session/625622/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-artc.html +http://mediate.magicbutton.net/do/session/625622/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-top50.html +http://www.nada.kth.se/systemgruppen/docs/javadoc/jdk-1.3/docs/api/javax/swing/plaf/basic/class-use/BasicSliderUI.ChangeHandler.html +http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/Collect_DB_Advers2/2000-09-10/08/?N=D +http://yp.gates96.com/12/57/30/53.html +http://yp.gates96.com/12/57/32/14.html +http://yp.gates96.com/12/57/32/97.html +http://yp.gates96.com/12/57/33/1.html +http://yp.gates96.com/12/57/33/37.html +http://yp.gates96.com/12/57/37/91.html +http://yp.gates96.com/12/57/37/98.html +http://yp.gates96.com/12/57/38/23.html +http://yp.gates96.com/12/57/38/34.html +http://yp.gates96.com/12/57/38/51.html +http://yp.gates96.com/12/57/38/53.html +http://yp.gates96.com/12/57/39/43.html +http://yp.gates96.com/12/57/39/56.html +http://yp.gates96.com/12/57/39/68.html +http://yp.gates96.com/12/57/39/70.html +http://www3.sympatico.ca/jacques.m.boisvert/Data_Distribution.html +http://www.garekiya.com/female/female02-25.html +http://www.brio.de/BRIO.catalog/39fe2f6c06f4cd8e273fd472aa780734/UserTemplate/5 +http://202.99.23.195/GB/channel1/13/20001030/291723.html +http://db.bbc.co.uk/education/gcsebitesize/maths/shape_and_space_i_h/loci_rev.shtml +http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceStoreCategories-BBC709F9_97F3_1F2D7EFC4CA45617D914720977E88400 +http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceShoppingCartPage-BBC709F9_97F3_1F2D7EFC4CA45617D914720977E88400 +http://polygraph.ircache.net:8181/http_-2www.microsoft.com/frontpage/http_-2www.hercules.com/history.htm +http://www.jbc.org/cgi/content/short/275/36/27501 +http://brazil.mit.edu/sdb/de/html/keylist.NNTP.html +http://ads3.zdnet.com/c/g=r771&c=a53605&idx=2000.10.30.21.30.57/www.micronpc.com/zd/max1299 +http://webtools.familyeducation.com/whatworks/item/front/0,2551,22-9696-6689-473-46499,00.html +http://www.dispatch.co.za/2000/04/08/business/HIGHLOW.HTM +http://generalstore.everdream.com/kore/catalog/Office_Supplies/Forms,_Record_Keeping_&_Reference/Human_Resources/Motivational/brand.html?sort=price&count=0 +http://www.laria.u-picardie.fr/docs/www.linux-france.org/article/securite/intro.html +http://ftp.uni-stuttgart.de/pub/netscape/communicator/slovenian/4.51/windows/windows95_or_nt/ +http://cafe4.daum.net/Cafe-bin/Bbs.cgi/monjatingpds/lst/qqeq/1/zka/B2-kBnNt +http://myhome.shinbiro.com/~funky27/novel18.htm +http://www.apcmag.com/apcweb/reviewsdisc.nsf/aac7d56ca8fd884b852563be00610639/25858e2d9c878e294a2567060015364d!EditDocument +http://www.private-immobilien-boerse.de/nordrhein-Westfalen/luedinghausen/Verkauf/3d-service/Gemeinsam/Immolink/Gemeinsam/erreichenPartner/Private-IB/ +http://www.eos.dk/archive/swing/msg00405.html +http://www.jobvillage.com/channel/jobs/human_resources/benefits_analysis/b.2807.g.1757.html +http://www.hanaga.com.cn/gbjc/tc/jq.htm +http://www.multimap.com/wi/33747.htm +http://www.multimap.com/wi/143959.htm +http://home.freeuk.net/jdl/Left_Navigate.htm +http://www.crit.org/nph-edit.cgi/http://crit.org/pub/ifi.unizh.ch/wagner/just-testing.html +http://www.interessengemeinschaft-musik.de/catalog%20data/body_22.html +http://aleph.tau.ac.il:4500/ALEPH/ENG/ATA/AAS/AAS/FIND-ACC/0333501 +http://www.mojahedin.org/Pages/Mojahed/Mojahed451/rp/rp09.html +http://genforum.genealogy.com/cgi-genforum/forums/lenhart.cgi?158 +http://carriage.de/Schoner/collections/Geschichte/Sammlungen/info-e/ +http://cafe4.daum.net/Cafe-bin/Bbs.cgi/pflhs11pds/rnw/zka/B2-kB2-s +http://ftp.lip6.fr/pub11/NetBSD/arch/hpcmips/pkgstat/20001008.0536/textproc/xerces-j-current/ +http://dk.egroups.com/message/scotdisinfo/306 +http://groups.haas.berkeley.edu/hcs/Docs/SASv8/sasdoc/sashtml/proc/z0360708.htm +http://www.legend-net.com/news/tiyu/messages/474.html +http://www.legend-net.com/news/tiyu/messages/466.html +http://tv.thevines.com/leaf/AA0000373887/3/0/0/&hmode=on +http://vorg1.subportal.com/sn/Business/Enhanced_Calculators/5511.html +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=7,28,31,24,35 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=24,5,17,30,11 +http://ftp.gwdg.de/pub/eff/Global/USA/Legislation/gtda_export.regulations +http://www.dein-schicksal.de/Fotoanzeigen/April_2000/7/17/27/body_57.html +http://www.fujian-window.com/Fujian_w/news/mzrb1/20000630/2_14.html +http://www.webswap.com/shelf/2/17559/sell.html +http://search.leg.wa.gov/wslrcw/RCW%20%2036%20%20TITLE/RCW%20%2036%20.100%20%20CHAPTER/RCW%20%2036%20.100%20.060.htm +http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/1997-98/jmc1/labs/Ex02/icc97/?M=A +http://school.educities.org/card/abc0609.html +http://school.educities.org/card/huangmei.html +http://school.educities.org/card/a126457822.html +http://school.educities.org/card/a8911.html +http://school.educities.org/card/aa5117.html +http://school.educities.org/card/b3575610.html +http://school.educities.org/card/c5625.html +http://school.educities.org/card/h1230997.html +http://school.educities.org/card/h224153937.html +http://school.educities.org/card/julie9.html +http://school.educities.org/card/lefe135.html +http://school.educities.org/card/nl123.html +http://school.educities.org/card/s5802.html +http://school.educities.org/card/s58120.html +http://school.educities.org/card/s5931.html +http://school.educities.org/card/s6197.html +http://school.educities.org/card/vov.html +http://school.educities.org/card/xx5331.html +http://darkwing.uoregon.edu/~cblanksh/GeneratedItems/?M=A +http://ciscom.gamecenter.com/Tipcheat/PC/Item/0,128,0-202,00.html +http://rotten-tomatoes.com/movies/browse/1010942/video.php +http://rotten-tomatoes.com/movies/browse/1076825/reviews.php +http://archive.soccerage.com/s/fr/09/98335.html +http://www.ferien-immobilien.de/nordrhein-Westfalen/aachen/Verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/3d-service/Gemeinsam/erreichenPartner/Gemeinsam/impressum.htm +http://www.ebigchina.com/tool_tellfriend.phtml?code=msg&mid=3174 +http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/src/libexec/rpc.rwalld/Makefile?only_with_tag=RELENG_3 +http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/src/libexec/rpc.rwalld/Makefile?only_with_tag=MAIN +http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/src/libexec/rpc.rwalld/Makefile?only_with_tag=RELENG_3_BP +http://ring.jec.ad.jp/pub/linux/debian/debian/dists/unstable/contrib/binary-sh/admin/?M=A +http://www2.eunet.lv/library/alt/URIKOVA/FORTUNE_D/Mirrors +http://www.hermes.dk/departments/om/publica.shtml +http://208.194.150.10/Ski/Articles/DrDewpoint/001/bannerAd.shtml +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/quanta/quanta/widgets/?sortby=log&only_with_tag=start +http://biblio.cesga.es:81/search*gag/aSempere+Navarro,+Antonio-Vicente/asempere+navarro+antonio+vicente/-5,-1,0,E/frameset&F=asempere+y+guarinos+juan+trad&1,1 +http://www.fractal.com.ru/Component/Toshiba/74Cxx/TC74HC74DS.pdf +http://www.staroriental.net/nav/soeg/ihf,aai,n3,7,Electric+Wave+Girl+1998.html +http://excite.de/auto/katalog/11803 +http://gatekeeper.dec.com/pub/BSD/NetBSD/NetBSD-current/pkgsrc/sysutils/amanda-client/pkg/ +http://www.smcworld.com/smcworld/bp_e/large/0524_2301_002x2301_003x2301_004x2301_005x2301_006x2301_007_2301_005b.html +http://www.kaos.dk/sexriddle/x/j/t/z/d/ +http://www.kaos.dk/sexriddle/x/j/t/z/e/ +http://spartanburg2.edgate.com/blgspringes/school_athletics/parent/ +http://www-personal.engin.umich.edu/~mhaanpaa/?S=D +http://www.amcity.com/jacksonville/stories/2000/05/15/story8.html?t=email_story +http://yp.gates96.com/7/47/40/13.html +http://yp.gates96.com/7/47/42/7.html +http://yp.gates96.com/7/47/43/2.html +http://yp.gates96.com/7/47/43/22.html +http://yp.gates96.com/7/47/43/54.html +http://yp.gates96.com/7/47/44/0.html +http://yp.gates96.com/7/47/45/3.html +http://yp.gates96.com/7/47/45/30.html +http://yp.gates96.com/7/47/45/78.html +http://yp.gates96.com/7/47/45/89.html +http://yp.gates96.com/7/47/46/41.html +http://yp.gates96.com/7/47/46/71.html +http://yp.gates96.com/7/47/48/1.html +http://yp.gates96.com/7/47/48/68.html +http://yp.gates96.com/7/47/48/92.html +http://yp.gates96.com/7/47/49/6.html +http://yp.gates96.com/7/47/49/43.html +http://yp.gates96.com/7/47/49/86.html +http://yp.gates96.com/7/47/49/97.html +http://de.excite.de/bildung/katalog/24692 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=90&discrim=226,20,231 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=90&discrim=226,20,4 +http://www.affiliate.hpstore.hp.co.uk/do/session/380862/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/search.asp +http://www1.zdnet.co.uk/news/news1/ns-1511.html +http://bellona.itworld.com:8080/cwi/reprint/0,1926,NAV63-128-1357-1367_STO48730,00.html +http://wwwhome.cs.utwente.nl/~zwiers/projects/docs/jdk/api/java/util/class-use/SortedMap.html +http://cgi.cnnsi.com/football/nfl/players/Ed.McCaffrey/ +http://fi.egroups.com/messages/philmusic/12006 +http://fi.egroups.com/messages/philmusic/12123 +http://fi.egroups.com/messages/philmusic/213 +http://fi.egroups.com/messages/philmusic/1826 +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=22,0+20,0-9,2-~ +http://my.egroups.com/message/gps4gis/164 +http://www.bemi-immobilien.de/Startseite/www.allgemeine-immobilien-boerse.de/allgemeine-ib/landkreiszwickau/Verkauf/29109700708107kirchbergvillamü/Gemeinsam/MarketingStrategie/Gemeinsam/Inserieren/Startseite/Startseite/Gemeinsam/versicherungen/gebaeude/anforderungsformular.htm +http://apple.excite.com/entertainment/fine_arts/classical_music/composers/baroque_composers/albinoni_tomaso/works/ +http://www.lithoquoter.com/Scripts/WebObjects.exe/Printers.woa/609420000046582000001552000000949302/main.wo/7834100000849302/4/-/prime +http://yp.gates96.com/11/75/40/25.html +http://yp.gates96.com/11/75/40/38.html +http://yp.gates96.com/11/75/40/88.html +http://yp.gates96.com/11/75/40/91.html +http://yp.gates96.com/11/75/42/1.html +http://yp.gates96.com/11/75/42/74.html +http://yp.gates96.com/11/75/42/81.html +http://yp.gates96.com/11/75/43/45.html +http://yp.gates96.com/11/75/43/51.html +http://yp.gates96.com/11/75/46/25.html +http://yp.gates96.com/11/75/46/72.html +http://yp.gates96.com/11/75/46/89.html +http://yp.gates96.com/11/75/46/91.html +http://yp.gates96.com/11/75/47/5.html +http://yp.gates96.com/11/75/48/67.html +http://yp.gates96.com/11/75/49/89.html +http://users.telerama.com/~mross/jenny/forsale.html +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=14&discrim=212,57 +http://ring.htcn.ne.jp/archives/NetBSD/NetBSD-1.4.2/atari/binary/security/?N=D +http://library.bangor.ac.uk/search/dCanada+--+Agricultural+resources+--+19th+century/dcanada+agricultural+resources+++19th+century/-5,-1,0,B/exact&F=dcanaanites&1,3 +http://www.brio.de/BRIO.catalog/39fe2f6406e8eec4273fd472aa780738/UserTemplate/5 +http://kuyper.calvin.edu/fathers2/NPNF1-05/npnf1-05-04.htm +http://kuyper.calvin.edu/fathers2/NPNF1-05/npnf1-05-08.htm +http://kuyper.calvin.edu/fathers2/NPNF1-05/npnf1-05-20.htm +http://polygraph.ircache.net:8181/http_-2www.sgi.net/http_-2www.itools.com/research-it/http_-2www.aardvarkclay.com/Themes/http_-2www.snapsite.com/guests/sk8ctrl/public/html/sitemap/sitemap.htm +http://www.genexchange.com/cemlist.cfm?state=mo&county=webster +http://newsone.net/nnr/showart/alt.current-events.haiti/911 +http://212.11.11.62/voyages_degriffes/MEXIQUE/PARIS+-+MEXICO+A%2FR/SAI00511790/ +http://bitwise.linux.tucows.com/x11html/adnload/131942_45932.html +http://www.brio.de/BRIO.catalog/39fe2f740910301a2740d472aa7806aa/UserTemplate/1 +http://singles-ads.theshoppe.com/cgi-bin/c/736/64/dXNlcmJhbm5lcg==/gn/3585/ +http://www.chaos.dk/sexriddle/j/l/v/y/t/ +http://www.interlog.com/~prandall/relations/d0003/g0000795.html +http://ftp.jp.debian.org/debian/dists/woody/non-free/binary-arm/oldlibs/?M=A +http://biblioteca.upv.es/bib/doc/doc_fisbd/129/97268//V/1828099/6////25/N/MLTPAID +http://biblioteca.upv.es/bib/doc/doc_fisbd/129/147168//V/1828099/11////25/N/MLTPAID +http://biblioteca.upv.es/bib/doc/doc_fisbd/129/124846//V/1828099/24////25/N/MLTPAID +http://mirrortucows.technet.it/winme/htmlbeginnerme_size.html +http://www.bcbsal.org/Provider_Dir/pharmacy/state/Georgia/HAWKINSVILLE/index_10201.html +http://www.incestpornstories.com/tinkerbellbeard/ac/plus-sizehealthy/petitevietnamese/slanted-eyes/cuntschoolgirls/high-schoolteenager/cherryunderage.html +http://www.0563.net/imode2/hazu/play/outdoor/nature/nature1.htm +http://www.launch.com/music/songpage/pvn_content/0,5259,1074221,00.html +http://ftp.jp.debian.org/debian/dists/unstable/main/binary-alpha/tex/?S=A +http://iceberg.adhomeworld.com/cgi-win/redirect.exe/896425026 +http://www.nrc-handelsblad.nl/W2/Lab/Baan/000726-a.html +http://www.nrc-handelsblad.nl/W2/Lab/Baan/000718-a.html +http://members.tripod.co.jp/muzyaki/?M=A +http://alfa.nic.in/lsdeb/ls12/ses4/0413039930.htm +http://excite.de/immobilien/katalog/26640 +http://excite.de/immobilien/katalog/27591 +http://excite.de/immobilien/katalog/28370 +http://excite.de/immobilien/katalog/28376 +http://excite.de/immobilien/katalog/26426 +http://excite.de/immobilien/katalog/28458 +http://www.emerchandise.com/aboutus/b.TV%20THE60S/s.qxmvd5Gr +http://www.computerworld.com.cn/99/week/9920/9920c13.asp +http://www.stud.ntnu.no/~oystena/oystena/cache/dvx70a.html +http://nealet.subportal.com/sn/Shell_and_Desktop/Holiday_Screen_Savers/ +http://dk.egroups.com/message/ugm/40?source=1 +http://www1.bdaserver.de/bda/nat/pzt/formel1/gp/mon.html +http://www17.freeweb.ne.jp/diary/t-soken/love-love.htm +http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-10-12/14/971332013437.txt +http://pub3.ezboard.com/f80sxchangegeneraldiscussion.showMessage?topicID=60.topic +http://www.northampton.ac.uk/cgi-bin/liberation/betsie/betsie.pl/0005/www.nene.ac.uk/ncr/enrol/sectn4/pdf/4-5.pdf +http://www.xmission.com/~dkenison/cgi/lwgate.cgi/LDS-BOOKSHELF/archives/v01.n676/Date/article-15.html +http://www.eos.dk/archive/swing/nav08574.html +http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=1,4,11,18,5,17 +http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=6,4,11,18,5,17 +http://cn.egroups.com/message/highlanderswaps/3351 +http://cn.egroups.com/message/highlanderswaps/3356 +http://www.mobygames.com/user/sheet/view/havelist/so,game_title(game_id)+DESC,game_havelist_id+DESC/userHaveListId,18/userSheetId,832/offset,15/ +http://www.mobygames.com/user/sheet/view/havelist/so,game_title(game_id)+DESC,game_havelist_id+DESC/userHaveListId,18/userSheetId,832/offset,60/ +http://gettosdownloads.subportal.com/sn/Palm_Pilot/Home_and_Hobby/12385.html +http://biblio.cesga.es:81/search*gag/aOurense+(Di%26oacute%3Bcesis).+Obispado+de+Ourense,+ed./aourense+diocesis+obispado+de+ourense+ed/-5,-1,0,B/browse +http://www.beneteau-owners.com/beneteau.nsf/userlistbyboat!OpenView&Start=21.24&Count=45&Expand=39 +http://www.geocities.com/Yosemite/8908/ +http://www.geocities.com/Yosemite/3295/ +http://lists.insecure.org/linux-kernel/2000/Apr/4105.html +http://www.telematik.informatik.uni-karlsruhe.de/osf/sw/v5.0x/lp2/dna500/ +http://atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/dist/0.0.28/graphics/TreeBuilder/TreeMaker/CVS/?M=A +http://www.21hk.com/book/zt/zt/zpj/c/chichuancilang/txmoxj/012.htm +http://chat.hani.co.kr/NetBBS/Bbs.dll/brief/rcm/zka/B23lBn-t/qqatt/^ +http://www3.buch-per-sms.de/impressum.jsp$ID=To7770mC6889218603037781At0.41865389376542195 +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1997/7/0/904457/ +http://www.mets.com/gameinfo/990504-recap.htm +http://www.mets.com/Video/990709-PiazzaHR_lr.asp +http://www.people.zeelandnet.nl/cn.atlas/compatlasw1.html +http://www.digitaldrucke.de/(aktuell,bekanntschaften,hilfe,marktplatz,nuernberg)/_fort/html/themen/markt/bekannt/bekannt.htm +http://www.staroriental.net/nav/soeg/ihf,acf,s0,359,Gigi+Leung+Wing-Kay.html +http://rapidus.tucows.com/winme/adnload/137435_28887.html +http://library.bangor.ac.uk/search/aBerthoff,+Ann+E/aberthoff+ann+e/-5,-1,0,B/frameset&F=aberthier+rene&1,1 +http://www.teenplatinum.com/barelylegal/underagevirgin/abductionbondage/amateurco-ed/chijapanese/{gaylink} +http://www.paisvirtual.com/informatica/freeware/cltorres/contra.htm +http://library.cuhk.edu.hk/search*chi/aInstitution+of+Civil+Engineers+(Great+Britain)/ainstitution+of+civil+engineers+great+britain/-5,-1,0,B/browse +http://www.digitaldrucke.de/(aktuell,computer,hersteller,hilfe)/_fort/html/themen/computer/hard/links/dell.htm +http://www.angelfire.com/ar/jimbowles/weekofoct3.html +http://www.dtic.mil/envirodod/derpreport95/vol_2/b2_1991.html +http://www.dtic.mil/envirodod/derpreport95/vol_2/b2_2010.html +http://kobe.cool.ne.jp/heartisland/y_top0004.html +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=146&discrim=10,97,3 +http://www.channel7000.com/partners/tv/consumer/partners-tv-consumer-20000207-231308.html +http://www.channel7000.com/partners/tv/consumer/partners-tv-consumer-19991206-195152.html +http://www.channel7000.com/partners/tv/consumer/partners-tv-consumer-990920-105620.html +http://www.channel7000.com/partners/tv/consumer/partners-tv-consumer-990810-082554.html +http://gallery2.simplenet.com/lobby/main/videocaps/lalbrght/conair/laca26.htm +http://www.ld.com/cbd/archive/1999/09(September)/30-Sep-1999/Bawd007.htm +http://www.ld.com/cbd/archive/1999/09(September)/30-Sep-1999/Bawd013.htm +http://chunma.yeungnam.ac.kr/~j4390071/ +http://www.chaos.dk/sexriddle/h/y/z/m/ +http://www.maas.ccr.it/cgi-win/hiweb.exe/a18/d262/b190,8,be,29,29,,b,,be,b, +http://pub17.ezboard.com/fanimesandrpgslinkstositesandotherforums.showMessage?topicID=2.topic +http://www.hotelboulevard.com/fr/riviera/standard/htmled1e03872682f66e105b3c38b4506d50/sessionLang/ANG/search.html +http://bbs.msquare.or.kr/list.bbs/course/old/DiscMath95/9.html +http://www.rezel.enst.fr/ftp/linux/distributions/debian/CD-1/dists/unstable/main/binary-all/mail/?N=D +http://www.ee/epbe/pangandus/9910/0.2.txt +http://shitty.10pics.com/buttfucking/rear/ +http://www.thestateofcolorado.com/hsiwindowdoorlettering.html +http://www.generation-formation.fr/brevesc.htm---o21zAo0UtDo0Ol9A074fo6Td4ezyr6feZJPAPfVbNyqruePl9neNHhIeOkatAhcgNA074wNV8XzAhcgNAPfVbdsNhJI.htm +http://netscape.digitalcity.com/boston/sports/standings.dci?league=NBA&team=BOS +http://netscape.digitalcity.com/boston/sports/attcompare.dci?league=NBA&team=BOS +http://retailer.gocollect.com/do/session/1912752/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp +http://mindit.netmind.com/proxy/http://www.skepdic.com/sympathetic.html +http://mindit.netmind.com/proxy/http://faculty.washington.edu/chudler/moon.html +http://itcareers.careercast.com/texis/it/itjs/++wwBmeE_D86esmwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqew8Qwo5qda5dc1BodDawGnwaGn31oGnmaoDmnpBraADdicnmtnapGdm1qBaBnqrDoqwcatGd1pamnVncdpaMFqoET02fgENDzmezxwwwpBmeC_D86Qwww5rmkmwwBrmeyDwww/morelike.html +http://retailer.gocollect.com/do/session/1912762/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/terms_and_conditions.asp +http://retailer.gocollect.com/do/session/1912762/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/suggestions.asp +http://www.writtenbyme.com/cgi-bin/rw_readarticle.cgi/141339880.shtml +http://www.writtenbyme.com/cgi-bin/rw_readarticle.cgi/410769654.shtml +http://www.writtenbyme.com/cgi-bin/rw_readarticle.cgi/190045923.shtml +http://tucows.megalink.com/winme/preview/76155.html +http://www.buybuddy.com/sleuth/17/1/2006/32184/ +http://www.affiliate.hpstore.hp.co.uk/do/session/380853/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp +http://pchome.net:81/ch/Hw/CAMERA/canoneosd30/canoneosd30.htm +http://pchome.net:81/ch/Hw/CAMERA/kodaknew.htm +http://pchome.net:81/ch/Hw/MODEM/twluc562w2k.htm +http://pchome.net:81/ch/Hw/MONITOR/mag796fd.htm +http://pchome.net:81/ch/Hw/cool/anquanshuileng/anquanshuileng.htm +http://pchome.net:81/ch/Hw/DISPLAY/3dbenchmarks/3dbenchmarks.htm +http://pchome.net:81/ch/Hw/CAMERA/Microdrive.htm +http://pchome.net:81/ch/Hw/harddisk/niyaomaishime.htm +http://www.civila.com/guitar/desenredada/chat/logos/index.html-ssi +http://members.xoom.it/scialpinismo/gitaappenparm/PreviewPages/PreviewPage7.htm +http://cpan.nitco.com/modules/by-module/Mail/ASPIERS/URI-Bookmarks-0.92.readme +http://polygraph.ircache.net:8181/services/design/http_-2www.swnebr.net/~cambridg/http_-2www.cauce.org/Malcolm/ +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_aswkit_aswkit.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_nbilwv_rbpobu.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_jkawvi_messod.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_jkawvi_otdbms.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_jkawvi_hoktlo.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_uhfkhdn_ilaeh.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_xyhsj_pfepjoa.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_alkqaay_mogsts.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_ighrg_ighrg.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_cbfjod_parbe.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_dqnlq_jfspcj.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_phcro_bwlah.html +http://www.asahi-net.or.jp/~yd7k-itu/sbbsindex/old/16_phcro_xoxchqb.html +http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/IkhI2h2UISFGhSJ4dK-jGu69npNFUTS7n0SO4q6b8rSzWq_RIDBJOsj9QRxPcb3IZgZlQ5jvjGikzJWNeK-85DucH1Ag5dhhL0czi-GMxyHC1dmfKc0hW5TzqJpnm938SIT3xNrWgjZN66P6 +http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/oo1IpLu33emgRiskeudWkzY7LxFY35wz6EqyQ42lguNadi_4qnt4FhGUPOob_C5Wt99hQSEKEuRTRevsau9UYJ9lySivV-u51_OF4aSEhYXTt98QpjnIOFYPV6acMb20In922uOHMyYdC8HXvwhIP-8o8oM4wLBMdll6aW8xe922WllgXE1F5qlvFqyA +http://msdn.microsoft.com/library/devprods/vs6/visualj/vjref/java.sql.DatabaseMetaData136.html +http://msdn.microsoft.com/library/devprods/vs6/visualj/vjref/java.sql.DatabaseMetaData090.html +http://romulus.ehs.uiuc.edu/cgi-bin/lwgate/RADSAFE/archives/radsafe9902/Date/article-572.html +http://spaceports.tucows.com/winme/preview/76400.html +http://www.telecombroker.com/q/001p/ppc3/qG4gs1ewhU.htm +http://ftp.nodomainname.net/pub/mirrors/.2/gnu/graphics/?N=D +http://retailer.gocollect.com/do/session/1912813/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/site_tour/index.asp +http://retailer.gocollect.com/do/session/1912813/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/news/index.asp +http://retailer.gocollect.com/do/session/1912813/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/privacy_policy.asp +http://202.101.106.19/dir/100/10a/zzgk/bszn/111.htm +http://www.eveclub.com/cgi-bin/eveclub.front/972959538910/Catalog/1000084 +http://www.eveclub.com/cgi-bin/eveclub.front/972959538910/Club/start/1000000 +http://www.slis.ua.edu/cgi-bin/clickthrough.cgi/CT=http_3a_2f_2fwww_2edermis_2enet_2fbilddb_2fdiagnose_2fenglisch_2fi697015_2ehtm +http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/rnumber/8467604 +http://www-personal.engin.umich.edu/~vernage/teamweb/team.building/effective.meetings/effective.meetings.facilitation.htm +http://www4.law.cornell.edu/uscode/42/ch87subchIV.head.html +http://yp.gates96.com/7/27/90/10.html +http://yp.gates96.com/7/27/90/11.html +http://yp.gates96.com/7/27/90/30.html +http://yp.gates96.com/7/27/91/72.html +http://yp.gates96.com/7/27/91/76.html +http://yp.gates96.com/7/27/91/85.html +http://yp.gates96.com/7/27/91/92.html +http://yp.gates96.com/7/27/92/61.html +http://yp.gates96.com/7/27/92/72.html +http://yp.gates96.com/7/27/93/10.html +http://yp.gates96.com/7/27/93/17.html +http://yp.gates96.com/7/27/93/30.html +http://yp.gates96.com/7/27/93/65.html +http://yp.gates96.com/7/27/93/76.html +http://yp.gates96.com/7/27/93/99.html +http://yp.gates96.com/7/27/94/37.html +http://yp.gates96.com/7/27/94/85.html +http://yp.gates96.com/7/27/95/5.html +http://yp.gates96.com/7/27/95/14.html +http://yp.gates96.com/7/27/95/55.html +http://yp.gates96.com/7/27/95/57.html +http://yp.gates96.com/7/27/96/21.html +http://yp.gates96.com/7/27/96/49.html +http://yp.gates96.com/7/27/96/50.html +http://yp.gates96.com/7/27/96/55.html +http://yp.gates96.com/7/27/96/92.html +http://yp.gates96.com/7/27/97/24.html +http://yp.gates96.com/7/27/97/73.html +http://yp.gates96.com/7/27/97/98.html +http://yp.gates96.com/7/27/98/26.html +http://yp.gates96.com/7/27/98/62.html +http://yp.gates96.com/7/27/99/15.html +http://yp.gates96.com/7/27/99/52.html +http://www.nrk.no/finnmark/x2_9_98/nyh11.htm +http://www.excelsior.com.mx/9701/970105/nac18.html +http://www.symantec.co.kr/sabu/igear/igear_educ/stories.html +http://www.smcworld.com/smcworld/bp/pre/0204_1_1070.html +http://www.cpami.gov.tw/ymsnp/animal/fauna/nospc708choice.htm +http://pub9.ezboard.com/fdawsonscreek50374helpwanted +http://pub9.ezboard.com/fdawsonscreek50374frm17 +http://www.happychannel.it/turismo/europa/top_news/schede/scheda_991209110434.shtml +http://www.happychannel.it/turismo/europa/top_news/schede/scheda_991111111106.shtml +http://dirs.educationamerica.net/New_York/Localities/N/New_York_City/Manhattan/Business_and_Economy/ +http://dirs.educationamerica.net/New_York/Localities/N/New_York_City/Manhattan/Government/ +http://china-water.51.net/life/life_20.htm +http://china-water.51.net/life/life_22.htm +http://www.egroups.com/message/ramtalk/17801 +http://www.usahardware.com/inet/webSession/shopper/US972959720-31113/store/dept-1 +http://www.usahardware.com/inet/webSession/shopper/US972959720-31113/store/specials +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=97&discrim=2,68,201 +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/quizz/legendes/misc/music/lit/hasard.html +http://findmail.com/group/ken2061 +http://www.affiliate.hpstore.hp.co.uk/do/session/380852/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-photoworld.com/photoworld.asp?lang=f +http://www.affiliate.hpstore.hp.co.uk/do/session/380852/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/traveljournal.asp +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www-med.stanford.edu/school/banner.html +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www-med.stanford.edu/school/neurosurgery.html +http://hotop.on.net.cn/diguo/club/disp.asp?owner=A201&ID=894 +http://hotop.on.net.cn/diguo/club/disp.asp?owner=A201&ID=846 +http://interbaun.tucows.com/winme/preview/577.html +http://www.ferien-immobilien.de/ungarn/verkauf/Gemeinsam/Immolink/Exklusiv-IB/Startseite/3d-service/Private-IB/Startseite/Default.htm +http://www.eos.dk/archive/swing/msg10936.html +http://www.egroups.com/message/ICSIA-PublicForum/138 +http://www.online.kokusai.co.jp/Service/V0043601/wrd/G200/service/service.html +http://debian.tod.net/debian/dists/unstable/main/source/libs/?N=D +http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d79/b77,e,4d,51,51,819,819,,2,,51,2,4e,,4d,4e, +http://www.redhat.com/mirrors/LDP/LDP/khg/HyperNews/get/fs/fs/9/?N=D +http://ftp.oleane.net/pub/CTAN/systems/knuth/local/man1/?D=A +http://www.jamba.de/KNet/_KNet-_UA8j1-xFd-13bat/browse.de/node.0/cde7f1uou +http://www.jamba.de/KNet/_KNet-_UA8j1-xFd-13bbg/showInfo-jambabanner.de/node.0/cenv0b09a +http://www.tente.de/us/produkte/artikel/af000000736.htm +http://dwp.bigplanet.com/bloomingprairie/look/sitemap.nhtml +http://www.kfh-mainz.de/Organisationen/Ketteler/pf/ws0001.html +http://extreme-dm.com/tracking/reports/dj/nph-reloads.cgi?tag=agmusik +http://www.chaos.dk/sexriddle/c/v/m/v/y/ +http://ring.jec.ad.jp/pub/linux/debian/debian/dists/woody/non-free/binary-i386/electronics/?D=A +http://tongbang-gh.ed.taejon.kr/1998대전시/math/olym/function/m103_003/html/m103_003h01.html +http://www.company-product.com/23063/ +http://members.tripod.lycos.co.kr/re22/CPUCOOL5195/uni2k15/?N=D +http://209.52.189.2/print_message.cfm/stepparents/8279/173602 +http://216.33.87.17/sports/baseball/sba/sba04r.htm +http://www.mc99.co.jp/mvp/member/new/honda/16kr3fj2/search.cgi?_file=038 +http://www.emerchandise.com/browse/EMERCH/COASTERS/s.cU6lmV05 +http://www.emerchandise.com/browse/CHARMED/s.cU6lmV05 +http://www.across.or.jp/nbbs/nbbs.cgi/talk:n18/replyto/462 +http://www.vins-siffert-scea.fr/lycee-seijo/guide/staff/yoshida.htm +http://www.egroups.com/messages/grebel-list/2305 +http://polygraph.ircache.net:8181/services/design/http_-2www.abcjewelry.com/http_-2www.1045fm.com/http_-2www.4sitedesign.com/stp/nbm.html +http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/astro/wmmoonclock/pkg/Attic/DESCR?only_with_tag=RELEASE_4_0_0 +http://biblio.cesga.es:81/search*gag/tMariposas+negras.+1:08,50+min/tmariposas+negras++++1+++08+++50+min/-5,-1,0,B/frameset&F=tmariposa+y+la+hormiga&1,1 +http://polygraph.ircache.net:8181/Cameras/order/rr962.htm +http://polygraph.ircache.net:8181/Cameras/order/dfwmap.htm +http://support.tandy.com/support_audio/doc45/45827.htm +http://image.tulips.tsukuba.ac.jp:70/fif=picture/ECWP/001.fpx&init=-0.23170732,0.0,1.2317073,1.0&rect=0.5,0.25,0.6829269,0.375&wid=600&hei=600&lng=ja&enablePastMaxZoom=OFF&page=uv1-en.html&obj=uv,1.0&cmd=NW +http://pub23.ezboard.com/fcaribbeanvoiceforumsfrm3.showAddTopicScreenFromWeb +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,1+0,0-19,0+9,4 +http://vipnet.tucows.com/win2k/adnload/51108_28465.html +http://vipnet.tucows.com/win2k/adnload/38782_28482.html +http://www4.50megs.com/tstazer/edhtms/edbeats.htm +http://www.unterhaltungs-cd.de/ObervellacherBuam/B000025KMT.htm +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=bocarderont&l=fr +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=146&discrim=10,3,211 +http://variety.studiostore.com/help_security/b.TV%20HERCULES/s.cD15jQkr +http://variety.studiostore.com/help_shipping/b.TV%20HERCULES/s.cD15jQkr +http://variety.studiostore.com/product/TSHER0001/b.TV%20HERCULES/s.cD15jQkr +http://variety.studiostore.com/aboutus/b.TV%20HERCULES/s.cD15jQkr +http://www.redrocksports.com/sports/webSession/shopper/RR972959753-31163/store/dept-5/department/dept-5/item/51530 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=135&discrim=165,71,194 +http://www.kagtech.com/SpitfrireKennels +http://www.expage.com/page/thekatshow +http://www.jobvillage.com/channel/jobs/cleaning/gardener/b.4255.g.3878.html +http://www.xmwb.sh.cn/xmwb/20000704/BIG5/14016^6070408.htm +http://www.xmwb.sh.cn/xmwb/20000704/BIG5/14016^7070414.htm +http://dennou-t.ms.u-tokyo.ac.jp/arch/cc-env/Linux/debian-jp/dists/woody-jp/contrib/binary-all/tex/?S=A +http://genforum.genealogy.com/ny/monroe/messages/350.html +http://genforum.genealogy.com/ny/monroe/messages/296.html +http://genforum.genealogy.com/ny/monroe/messages/306.html +http://genforum.genealogy.com/ny/monroe/messages/213.html +http://otenet.themes.tucows.com/fonts/preview/18792.html +http://otenet.themes.tucows.com/fonts/adnload/18828.html +http://otenet.themes.tucows.com/fonts/adnload/18876.html +http://otenet.themes.tucows.com/fonts/preview/18877.html +http://otenet.themes.tucows.com/fonts/adnload/18894.html +http://otenet.themes.tucows.com/fonts/adnload/18910.html +http://otenet.themes.tucows.com/fonts/adnload/18941.html +http://otenet.themes.tucows.com/fonts/adnload/18949.html +http://otenet.themes.tucows.com/fonts/adnload/25945.html +http://ww.egroups.com/message/schoolnet_sadc/96 +http://ww.egroups.com/message/schoolnet_sadc/98 +http://www6.pasta.cs.uit.no/ietf/ietf45/proceedings/I-D/webdav-dublin-core-01.txt +http://www-uk9.cricket.org/link_to_database/INTERACTIVE/SURVEYS/POLLS_DEC1998.html +http://www.ucp.org/ucp_generaldsc.cfm/151/8/35/ucp_disctpc/292/263 +http://www.ucp.org/ucp_generaldsc.cfm/151/8/35/ucp_disctpc/79/79 +http://se.egroups.com/message/DBA/1700 +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/138/2000/6/0/ +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/138/2000/7/0/ +http://www.inf.fu-berlin.de/lehre/WS00/SWT/material/rosebeispiele/interaccess/logicalview/cat32862112022a/cat36e7162c0192/msg343269780227.htm +http://www.private-immobilien-boerse.de/leipzig/verkauf/Gemeinsam/erreichenPartner/IIM-Teil/Startseite/Gemeinsam/versicherungen/gebaeude/Allgemeine-IB/Startseite/ +http://www.private-immobilien-boerse.de/leipzig/verkauf/Gemeinsam/erreichenPartner/IIM-Teil/Startseite/Gemeinsam/versicherungen/gebaeude/Gemeinsam/Immolink/link.htm +http://freetravel.bedandbreakfast.com/Canada/Prince%20Edward%20Island/Little%20Sands.asp +http://freetravel.bedandbreakfast.com/Canada/Prince%20Edward%20Island/Miscouche.asp +http://freetravel.bedandbreakfast.com/Canada/Prince%20Edward%20Island/O'Leary.asp +http://www.buybuddy.com/sleuth/15/1/1070306/519432/ +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/KIRJASTO-+JA+TIETOPALVELUT/ammattikorkeakoulukirjastot/ammattikorkeakoulut/lahti/p%E4ij%E4t-h%E4me/ +http://www.3w-buecher.de/GravesRobert/GravesRobert0140171991.htm +http://www.3w-buecher.de/GravesRobert/GravesRobert1559948345.htm +http://www.3w-buecher.de/GravesRobert/GravesRobert1850897506.htm +http://members.theglobe.com/heliox2/pokepages/ninepic.htm +http://taiwan.vh.org//////Providers/Textbooks/MuscleInjuries/Fig2.html +http://www.globalgarden.com/Tomato/Archives/vol.1/1147.html +http://www.mojahedin.org/Pages/Mojahed/Mojahed442/articles/articlesftx03.html +http://216.34.146.180/161000reu/16hlth6.htm +http://moshkow.sstu.samara.ru/win/BESTER/Encoding_koi +http://in.egroups.com/message/Girl-Scout-Swaps/9 +http://in.egroups.com/message/Girl-Scout-Swaps/31 +http://members.tripod.com/floydechoes/more.htm +http://nanjingnews.jlonline.com/nanjingnews/njrb/20000222/08dushi.htm +http://www.egroups.com/messages/archery/38?expand=1 +http://retailer.gocollect.com/do/session/1912759/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/index.asp +http://home.dqt.com.cn/~ying_jia/wangwen/new/111.htm +http://canoe.com/MLB97FLASF/sep30_fla_sf.html +http://pub2.ezboard.com/fespguitarsmessageboardltdguitarandbassreviews.subscribeUnregisteredToTopic?topicID=8.topic +http://www.catholicstore.com/search/index.cfm/FuseAction/largeImage/SKU/2558/category/Bo/subCategory/AE/subject/17 +http://www.allgemeine-immobilien-boerse.de/bayern/augsburg/Verkauf/Private-IB/Startseite/Gemeinsam/Inserieren/Private-IB/IIM-Teil/Startseite/froben.htm +http://www.infoscape.com.cn:8171/nf/0004/18/nfga1801.htm +http://www.infoscape.com.cn:8171/nf/0004/18/nfga1809.htm +http://www.linux.com/networking/network/kernel/apache/applications/HTTP/ +http://www.linux.com/networking/network/kernel/apache/applications/Linuxcare/ +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=exacerbate&l=en +http://dopey.rediris.es/ftp/mirror/CPAN/modules/by-module/overload/GSAR/Archive-Tar-0.071.readme +http://dopey.rediris.es/ftp/mirror/CPAN/modules/by-module/overload/GSAR/Tie-IxHash-1.21.readme +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=207&discrim=3,201,226 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=207&discrim=3,201,85 +http://www.gsnet.com/bdltg/es/1_136243.html?num=2 +http://www.pinoycentral.com/img/UBB.nsf/e39d540ca6a9104b4825694d006ed185/6668efca7b60518648256966000fd202?Navigate&To=Prev +http://www.academyfloral.com/state/cabel/flowers/harmony.html +http://trading.rakuten.co.jp/items001/4c/0d/10138895/bidlist.html +http://www.cs.uwa.edu.au/programming/jdk1.2.2/api/javax/swing/event/class-use/TableColumnModelListener.html +http://secure.danysoft.com/asp/dany.tienda/803039052/IconBar +http://ftp-stud.fht-esslingen.de/pub/Mirrors/CPAN/modules/by-authors/id/L/LH/LHS/?S=A +http://genforum.genealogy.com/ga/messages/6297.html +http://genforum.genealogy.com/ga/messages/7843.html +http://genforum.genealogy.com/ga/messages/7281.html +http://www.jsinc.com/dd/destnat/sep00/fromcol10090800.asp +http://www.secinfo.com/$/SEC/Filing.asp?T=nDA3.7c_9i4 +http://www.secinfo.com/$/SEC/Filing.asp?T=nDA3.7c_b19 +http://www.sd.digitalcity.com/maconga/penpals/browse.dci?cat=teens +http://www.sd.digitalcity.com/maconga/penpals/browse.dci?cat=seniors&sort=f +http://www.picktips.com/category-1031-1172_1170_1174-4_1_3 +http://www-us6.semiconductors.com/acrobat/datasheets/CR6627_1.pdf +http://ftp.netc.pt/pub/idgames/levels/doom2/deathmatch/p-r/pimp.txt +http://ftp.netc.pt/pub/idgames/levels/doom2/deathmatch/p-r/radiated.txt +http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceMallCategories-BBC709FC_97F7_9E91E7C8C7066684B664C77C8575B940 +http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceOrderStatusOverview-BBC709FC_97F7_9E91E7C8C7066684B664C77C8575B940 +http://ads.puntopartenza.com/cgi-bin/redirect.cgi/31033638 +http://mediate.magicbutton.net/do/session/625642/vsid/4385/tid/4385/cid/88138/mid/1702/rid/2114/chid/3393/url/http://www.worldgallery.co.uk/frameset-top50.html +http://link.fastpartner.com/do/session/600388/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/netmaling.php +http://www.egroups.com/message/RecipeCollectors2/3785 +http://plat.debian.or.jp/debian/dists/woody/contrib/binary-alpha/admin/?S=A +http://198.103.152.100/search*frc/aFILIPPELLI,+R.L/afilippelli+r+l/-5,-1,0,B/frameset&F=afilion+louis+jacques&1,,0 +http://de.excite.de/wetter/katalog/4206 +http://www.burstnet.com/ads/ad8386a-map.cgi/973225252.925077 +http://www.branchenfuehreronline.de/A/hauptteil_a.html +http://www.linux.com/networking/support/red_hat/internet/test/simple/ +http://www.shopworks.com/ccfarm/index.cfm/action/search/userid/00061450-2F40-19FE-9038010B0A0ADCF2 +http://www.shopworks.com/index.cfm/userid/00061450-2F40-19FE-9038010B0A0ADCF2 +http://pelit.saunalahti.fi/.1/tucows/preview/144491.html +http://pelit.saunalahti.fi/.1/tucows/preview/52377.html +http://www.teacherformation.org/html/od/facilitators.cfm/xid,7238/yid,4053212 +http://tw.yahoo.com/Regional/Countries_and_Regions/China/Provinces__Regions_and_Municipalities/Tianjin/Business/Companies/Utilities/ +http://brain.brent.gov.uk/WebPages.nsf/vWebAllPagesByKey!OpenView&Start=174&Count=60&Expand=194 +http://brain.brent.gov.uk/WebPages.nsf/vWebAllPagesByKey!OpenView&Start=174&Count=60&Expand=227 +http://www.bemi-immobilien.de/Landhaus-Bordeaux/Gemeinsam/versicherungen/unfall/Gemeinsam/erreichenPartner/Startseite/Gemeinsam/MarketingStrategie/Startseite/froben.htm +http://www.bemi-immobilien.de/Landhaus-Bordeaux/Gemeinsam/versicherungen/unfall/Gemeinsam/erreichenPartner/Startseite/Gemeinsam/MarketingStrategie/Gemeinsam/versicherungen/gebaeude/deckungsumfang.htm +http://www.3wposter.com/hake/hkg1701.htm +http://www.citybrazil.com.br/go/mossamedes/utilpub.htm +http://oss.software.ibm.com/developerworks/opensource/cvs/icu4j/icu4j/src/com/ibm/demo/translit/Attic/?sortby=date +http://www.linux.com/networking/network/management/operating_system/enterprise/research/ +http://www.angelfire.com/pq/Prophetess/Prophetess.page3.html +http://www.3w-nostalgie.de/ZeigerMimi/ZeigerMimi007072833X.htm +http://www.excelsior.com.mx/9801/980128/for01.html +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=11&discrim=49,235,5 +http://retailer.gocollect.com/do/session/1912802/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/contact.asp +http://citeseer.nj.nec.com/track/64292/4220924 +http://citeseer.nj.nec.com/correct/318910 +http://citeseer.nj.nec.com/correct/249393 +http://www.chaos.dk/sexriddle/h/y/r/k/ +http://www.hig.se/(aconf,date,doc,insert,return)/~jackson/roxen/ +http://www.hig.se/(aconf,date,doc,gtext,insert)/~jackson/roxen/ +http://mediate.magicbutton.net/do/session/625608/vsid/4573/tid/4573/cid/88043/mid/2247/rid/2383/chid/3527/url/http://www.winesmart.com/expert.asp +http://magazines.sina.com/education/renbun/93/13.html +http://www6.freeweb.ne.jp/art/cilter/kamijo02.htm +http://yp.gates96.com/11/25/50/28.html +http://yp.gates96.com/11/25/50/41.html +http://yp.gates96.com/11/25/50/65.html +http://yp.gates96.com/11/25/50/74.html +http://yp.gates96.com/11/25/50/91.html +http://yp.gates96.com/11/25/50/93.html +http://yp.gates96.com/11/25/50/94.html +http://yp.gates96.com/11/25/51/59.html +http://yp.gates96.com/11/25/51/93.html +http://yp.gates96.com/11/25/52/66.html +http://yp.gates96.com/11/25/54/46.html +http://yp.gates96.com/11/25/54/68.html +http://yp.gates96.com/11/25/54/83.html +http://yp.gates96.com/11/25/54/95.html +http://yp.gates96.com/11/25/54/98.html +http://yp.gates96.com/11/25/55/1.html +http://yp.gates96.com/11/25/55/6.html +http://yp.gates96.com/11/25/55/96.html +http://yp.gates96.com/11/25/56/83.html +http://yp.gates96.com/11/25/56/89.html +http://yp.gates96.com/11/25/57/30.html +http://yp.gates96.com/11/25/57/68.html +http://yp.gates96.com/11/25/58/56.html +http://yp.gates96.com/11/25/58/67.html +http://yp.gates96.com/11/25/59/7.html +http://yp.gates96.com/11/25/59/40.html +http://yp.gates96.com/11/25/59/58.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/misc/legendes/lit/misc/quizz/quizz2.html +http://excite.de/kleinanzeigen/katalog/7100 +http://www.egroups.org/messages/stepup/97 +http://sunsite.org.uk/pub/packages/proftpd/misc/?S=A +http://ring.htcn.ne.jp/archives/lang/perl/CPAN/modules/by-module/CGI/DOUGM/?M=A +http://ring.htcn.ne.jp/archives/lang/perl/CPAN/modules/by-module/CGI/DOUGM/Apache-Scoreboard-0.10.readme +http://ring.htcn.ne.jp/archives/lang/perl/CPAN/modules/by-module/CGI/DOUGM/B-Size-0.04.readme +http://herndon1.sdrdc.com/cgi-bin/can_ind/S8NY00082/1/Y/ +http://in.egroups.com/message/msu-foi/20?source=1 +http://www.worldstocks.de/htm/boersen/asien/indonesien_boerse.htm +http://members.xoom.com/pvmnieuws/movies/movies.html +http://gb.toget.com.tw/article/screensaver/index_a_2.html +http://www.emis.de/journals/EJDE/Volumes/Monographs/Volumes/2000/64/?N=D +http://bsd.wj.o3.net/8/1/18/4.html +http://www.ftp.uni-erlangen.de/pub/mirrors/_other/afterstep.foo.net/apps/asprint/?S=A +http://citeseer.nj.nec.com/cidcontext/3597768 +http://m4.findmail.com/dir/Sports/Soccer/Academic_Study_of_Soccer/History +http://genforum.genealogy.com/cgi-bin/print.cgi?westerman::121.html +http://www-koi.bards.ru/Egorov/part84.htm +http://www-koi.bards.ru/Egorov/part29.htm +http://www-koi.bards.ru/Egorov/part127.htm +http://www-koi.bards.ru/Egorov/part68.htm +http://www.loisirs.ch/emjius/10/brglll.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/quizz/music/computers/legendes/lit/hellequin.html +http://www.redrival.com/dejanss/muzika/exploited/themassacre.html +http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-08-31/13/967698323786.txt +http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-08-31/13/967699453627.txt +http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-08-31/13/967699813970.txt +http://www.chaos.dk/sexriddle/c/v/w/l/o/ +http://www.chaos.dk/sexriddle/c/v/w/l/x/ +http://www.allgemeine-immobilien-boerse.de/Oesterreich/verkauf/IIM-Teil/Startseite/Allgemeine-IB/Gemeinsam/3d-service/info.htm +http://www.marktplatz-hs.de/cgi-bin/ChioEditionShop.s/39fe2eeb0239a4a4273fd47540f806ea/IconBar +http://www.jamba.nl/KNet/_KNet-sDD8j1-GC4-puzu/browse.nl/node.0/cde7f1uou +http://www.icopyright.com/1.1635.66362 +http://www.ld.com/cbd/archive/1999/05(May)/07-May-1999/Vsol004.htm +http://www.infoscape.com.cn:8171/nf/0007/05/nfgz0517.htm +http://209.207.239.212/bkindex/c1034/f1392.html +http://www.gbnf.com/genealogy/rockwel4/html/d0007/I1584.HTM +http://www.gbnf.com/genealogy/rockwel4/html/d0023/I3700.HTM +http://www.hornchurch.londonengland.co.uk/designersgraphic.htm +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/computers/lit/misc/colorart/lit/quizz/ +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/computers/lit/misc/colorart/lit/misc/orders_mag.html +http://www.multimap.com/wi/141313.htm +http://www.multimap.com/wi/141326.htm +http://www.thestateofcolorado.com/aconplumbing.html +http://www.thestateofcolorado.com/aconstairs.html +http://ftp.netc.pt/pub/idgames/levels/doom2/0-9/10level.txt +http://members.tripod.com.br/Magoo13/musicas.htm +http://tucows.bigskysoft.com/winme/adnload/137256_30133.html +http://www.houses-apartment-rentals.com/Texas/city_search_criteria.asp?state=TX&City=CHICOTA +http://se.egroups.com/message/trabalhoseguro/186 +http://www.daysinn.com/ctg/cgi-bin/DaysInn/financial_support/AAAksrACwAAABvyAAQ +http://www.long-life.de/lt040.htm +http://smartnet.tucows.com/winme/meditme_rating.html +http://smartnet.tucows.com/winme/meditme_size.html +http://www.kmoviefc-jp.com/db/prod/pd/k1000003.htm +http://ftp.rge.com/pub/usenet/readers/mac/Mews/?S=A +http://fi.egroups.com/messages/lasermail/298 +http://fi.egroups.com/message/lasermail/295 +http://www.voter.com/home/message/post/1,1559,24-60_2976_2473-,00.html +http://se.egroups.com/message/rv8list/1122 +http://www.ferien-immobilien.de/Rhein-Sieg-kreis/verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/3d-service/Gemeinsam/Inserieren/Private-IB/Startseite/Default.htm +http://library.bangor.ac.uk/search/aUnited+Kingdom+Reading+Association/aunited+kingdom+reading+association/-17,-1,0,B/exact&F=aunited+kingdom+environmental+law+association&1,2/limit +http://webcenter.travelocity-leisure.netscape.com/DestGuides/0,1840,TRAVELOCITY|1987|5|2,00.html +http://yokohama.cool.ne.jp/michirur/dragon/maria/m2.htm +http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/graphics/Ngraph/patches/?D=A +http://mitglied.tripod.de/argewesterwald/jr/jrfo3.htm +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=3,16,10 +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=28,16,10 +http://avdistrict.edgate.com/hhs/pa_rc_gre.html +http://pub26.ezboard.com/fdysfuctionalrealityfrm2.showAddReplyScreenFromWeb?topicID=32.topic&index=1 +http://www.geocities.co.jp/Playtown-Domino/5245/guti.html +http://www.haikou.hi.cn/Pandect/hknj98/nj98d1.html +http://retailer.gocollect.com/do/session/1912800/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/site_tour/index.asp +http://ftp.unina.it/pub/Pcibm/pcdemos/ftp.hornet.org/graphics/images/1998/b/?M=A +http://variety.studiostore.com/browse/ABUGSLIFE/FIGURINE/s.qjEoNLlG +http://yp.gates96.com/11/76/10/13.html +http://yp.gates96.com/11/76/10/18.html +http://yp.gates96.com/11/76/11/63.html +http://yp.gates96.com/11/76/14/45.html +http://yp.gates96.com/11/76/14/65.html +http://yp.gates96.com/11/76/14/77.html +http://yp.gates96.com/11/76/15/1.html +http://yp.gates96.com/11/76/15/68.html +http://yp.gates96.com/11/76/15/97.html +http://yp.gates96.com/11/76/16/2.html +http://yp.gates96.com/11/76/16/59.html +http://yp.gates96.com/11/76/16/64.html +http://yp.gates96.com/11/76/16/79.html +http://yp.gates96.com/11/76/17/10.html +http://yp.gates96.com/11/76/17/52.html +http://yp.gates96.com/11/76/19/9.html +http://yp.gates96.com/11/76/19/11.html +http://yp.gates96.com/11/76/19/17.html +http://yp.gates96.com/11/76/19/19.html +http://www.debian.org.cn/Bugs/db/67/67207-b.html +http://www.bemi-immobilien.de/Exklusiv-IB/Startseite/Gemeinsam/immolink/Gemeinsam/Inserieren/Startseite/Gemeinsam/versicherungen/unfall/Gemeinsam/3d-service/info.htm +http://www.private-immobilien-boerse.de/baden-wuertemberg/calw/Verkauf/Gemeinsam/versicherungen/gebaeude/Gemeinsam/erreichenPartner/Private-IB/IIM-Teil/Startseite/frinfo.htm +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=21,0-(14,0)+9,5 +http://www.thesite.msnbc.com/tlkbck/comment/2100652/0,7436,80913-291181,00.html +http://202.109.72.57:8077/article/19991130/1741.htm +http://www.mit.edu/afs/athena.mit.edu/astaff/project/eolcdev/arch/sgi_62/ +http://www.metromix.com/top/1,1419,M-Metromix-Home-reviews!PlaceDetail-13623,00.html +http://ring.jec.ad.jp/pub/linux/debian/debian/dists/woody/non-free/binary-powerpc/news/?M=A +http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceStoreCategories-BBC70A07_97FC_42E663949129E2030ACC2E97E71CD8B3 +http://grwy.online.ha.cn/paoe/about/aoe2.htm +http://www.2pl.com/b/ar/to/1/01/01/v1/1010178470-3.htm +http://www.digitaldrucke.de/(aktuell,marktplatz,nuernberg,sense,werbung)/suche/uebersicht.html +http://ustlib.ust.hk/search*chi/aswiss+radio+symphony+orchestra/aswiss+radio+symphony+orchestra/-5,-1,0,B/frameset&F=aswiss+society+for+soil+and+rock+mechanics&1,1 +http://www.ecatsbridge.com/BiB/static/sims/bbljuly99/00000101843221172F1.htm +http://www.videogames.com/psx/sports/freestyle99/screen.html?page=19 +http://www.mojahedin.org/Pages/Mojahed/Mojahed474/sci/sci02.html +http://www.shopworks.com/bigmountain/index.cfm/action/cart/userid/000E50D6-1185-19FE-A703010D0A0A8CF2 +http://polygraph.ircache.net:8181/http_-2www.horizonfinance.com/~xionthia/as/ +http://yp.gates96.com/14/76/30/16.html +http://yp.gates96.com/14/76/30/81.html +http://yp.gates96.com/14/76/31/12.html +http://yp.gates96.com/14/76/31/37.html +http://yp.gates96.com/14/76/31/68.html +http://yp.gates96.com/14/76/32/11.html +http://yp.gates96.com/14/76/32/50.html +http://yp.gates96.com/14/76/32/68.html +http://yp.gates96.com/14/76/33/26.html +http://yp.gates96.com/14/76/33/53.html +http://yp.gates96.com/14/76/35/11.html +http://yp.gates96.com/14/76/35/26.html +http://yp.gates96.com/14/76/35/47.html +http://yp.gates96.com/14/76/35/74.html +http://yp.gates96.com/14/76/36/16.html +http://yp.gates96.com/14/76/37/23.html +http://yp.gates96.com/14/76/37/56.html +http://yp.gates96.com/14/76/37/82.html +http://yp.gates96.com/14/76/38/76.html +http://yp.gates96.com/14/76/39/20.html +http://yp.gates96.com/14/76/39/25.html +http://yp.gates96.com/14/76/39/28.html +http://yp.gates96.com/14/76/39/33.html +http://yp.gates96.com/14/76/39/61.html +http://yp.gates96.com/14/76/39/69.html +http://yp.gates96.com/14/76/39/91.html +http://www-usa8.cricket.org/link_to_database/ARCHIVE/ARTICLES/JAN-JUN_1996/PRESS_REACTIONS_AUS_18MAR1996 +http://www-usa8.cricket.org/link_to_database/ARCHIVE/ARTICLES/JAN-JUN_1996/LOSS_WI_CRICKET_11MAR1996.html +http://www-usa8.cricket.org/link_to_database/ARCHIVE/ARTICLES/JAN-JUN_1996/SPINNERS_TALES_11JAN1996 +http://hurweb01.hurriyetim.com.tr/hur/turk/98/11/19/gundem/31gun.htm +http://library.cuhk.edu.hk/search*chi/aKuan,+Jui-hsuan./akuan+jui+hsuan/-5,-1,0,E/exact&F=akuan+jui+hsuan&1,22 +http://library.cuhk.edu.hk/search*chi/aKuan,+Jui-hsuan./akuan+jui+hsuan/-5,-1,0,E/frameset&F=akuan+jung&1,,0 +http://ring.toyama-ix.net/archives/pc/winsock-l/Windows95/Finger/fing32l.txt +http://cometweb01.comet.co.uk/do!tid=20&rtid=1&vsid=700&session=132044&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplGGolLarZLq4fLpmiLXv-KmooLckYLoznGmpq0qsc0mojLbkYLozvGotc0ZdoLckYLozvGsmv0qmc0jXfLkVZLdocLkYoLzcj1XfkLVZXLqkXLjbzKcob5qroLkVrLoizKlZd5fjYHfklKkZlLjjbLoZbLpl51ubZLDXZLollK3ljLbqlKjXfLkkaHotl4obmLloqL +http://student.monterey.edu/nr/riveradebranepom/campus/ +http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/listUnseen/fol/100001/20,0/5170254 +http://www.ibiblio.org/pub/Linux/distributions/debian/contrib/binary-all/otherosfs/?D=D +http://www.ilmessaggero.it/hermes/19980909/01_NAZIONALE/SPETTACOLI/E.htm +http://ayasii.virtualspace.net/html/1207/12071611_himemiya02.htm +http://retailer.gocollect.com/do/session/1912732/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/about.asp +http://retailer.gocollect.com/do/session/1912732/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/newintros.asp +http://retailer.gocollect.com/do/session/1912732/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/dealer_lookup.asp +http://se.egroups.com/subscribe/pretty_of_five +http://home.neo.rr.com/keeter/pics.html +http://www.peopledaily.co.jp/haiwai/199910/12/newfiles/E108.html +http://www.telematik.informatik.uni-karlsruhe.de/osf/sw/v4.0x/lp2/snt100/?M=A +http://www.alyon.org/perso/1001-sciences/sciences_citoyens/agronomie/agronomie/intervenants.htm +http://www.2pl.com/b/no/fi/3/02/24/b1/3022400016-11131.htm +http://channel.nytimes.com/indexes/2000/07/21/sports/hockey/ +http://space.tin.it/io/fivird/REM/eng/albums/lyrics/documentfr.html +http://www.kurit.com/girls/galleryf.cgi?mp_code=7332&service=girls +http://store.efunctional.com/nokia.html +http://dk.egroups.com/login.cgi?login_target=%2Fmessage%2Fbonsai-cz%2F274 +http://bbs.kcm.co.kr/NetBBS/Bbs.dll/boliviabbs/opn/zka/B2-kB2Fq/qqo/007D/qqatt/^ +http://www.loisirs.ch/cvljnq/10/yrespd.html +http://www.primenet.com/~trakker/events/abcforum.htm +http://www.primenet.com/~trakker/events/frame_abcforum.htm +http://www.fogdog.com/cedroID/ssd3040183253760/nav/products/featured_brands/12r/gift_packs/ +http://www.fogdog.com/cedroID/ssd3040183253760/nav/products/featured_brands/12r/windshirts/ +http://www.oreilly.com/homepages/dtdparse/docbook/3.0/dtdent/simmod02.htm +http://dk.egroups.com/group/SCMHCSC +http://www.ycwb.com.cn/gb/2000/01/11/ycwb/dsxw/9.html +http://dk.egroups.com/message/teenhealth/1620 +http://nbzhuhq1.top263.net/htm/y/y14-5.htm +http://adserver.latimes.com/editions/orange/20001030/t000103739.html +http://adserver.latimes.com/editions/orange/20001030/t000103751.html +http://library.bangor.ac.uk/search/cWS+200+G4655+1999/cws++200+g4655+1999/-17,-1,0,B/frameset&F=cws++141+j74+h+1989&2,,2 +http://ftpsearch.belnet.be/pub/os/linux/SuSE-Linux/i386/6.4/disks/rescue +http://www.rarf.riken.go.jp/archives/tex-archive/macros/latex//contrib/supported/elsevier/model-harv.pdf +http://www.diogenes.ch/4DACTION/web_glob_showhtml/path=leser/verlag/index.html&ID=483373 +http://crn.com/Components/emailArticle.asp?ArticleID=2114 +http://link.fastpartner.com/do/session/600410/vsid/1970/tid/1970/cid/135878/mid/1060/rid/1488/chid/1970/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/speednames.php +http://link.fastpartner.com/do/session/600410/vsid/1970/tid/1970/cid/135878/mid/1060/rid/1488/chid/1970/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/nordicliving.php +http://ftp.gigabell.net/pub/FreeBSD/FreeBSD-stable/packages/emulators/ +http://ftp.gigabell.net/pub/FreeBSD/FreeBSD-stable/packages/print/ +http://emplois.fr.net/archive062000/2348.html +http://variety.studiostore.com/browse/ANASTASIA/_/b.FAVORITES%20COMICS%20ANIMFEAT/s.eKoxAPfo +http://www.geocities.co.jp/HeartLand-Gaien/3163/choko.htm +http://members.tripod.com/~moviemaniac1/moviesR/Rocketman.html +http://wiem.onet.pl/wiem/0006ac-sp1.html +http://msdn.microsoft.com/library/devprods/vs6/visualj/vjref/java.net.UnknownHostException001.html +http://www.tiscover.ch/1Root/Kontinent/6/Staat/30/Bundesland/31/Ort/1732/Homepage/m_homepage...2.html +http://power.luneng.com/power/library/jzjs/jzjs99/jzjs9903/990311.htm +http://citeseer.nj.nec.com/cidcontext/1976718 +http://in.egroups.com/messages/srcg/2 +http://sunsite.informatik.rwth-aachen.de/cgi-bin/ftp/ftpshow/pub/comp/Linux/debian/dists/potato/main/disks-sparc +http://pd.shiseido.co.jp/s9701unt/html/unt00025.htm +http://www.kame.tadaima.com/9721036/taro1.html +http://www.kame.tadaima.com/9721036/taro8.html +http://www.unc.edu/courses/chem41/classnotes/41s6/sld008.htm +http://a1sexpics.com/butts/buttfucking/ +http://moundoflove.com/buttfucking/butts/asslickinganal.html +http://www.digitaldrucke.de/(arbeitsvermittlung,hilfe,nuernberg)/_fort/html/themen/hilfe/hilfe.htm +http://freethemes.netc.pt/preview/15221.html +http://freethemes.netc.pt/preview/51972.html +http://freethemes.netc.pt/preview/74442.html +http://cn.tech.yahoo.com/000913/23/1dpl.html +http://cn.tech.yahoo.com/000913/23/1dp2.html +http://wap.jamba.de/KNet/_KNet-JgK8j1-FGd-13di8/browse.de/node.0/cde7f1uou +http://imageserver2.tibetart.com:8087/fif=fpxbuddhist/43.fpx&init=0.0,0.0,1.0,1.0&rect=-0.25,0.25,0.25,0.75&wid=280&hei=400&lng=en_US&enablePastMaxZoom=OFF&page=image.html&obj=uv,1.0&cmd=S +http://www.ozemail.com.au/~pballard/gnt_hidden123/mar12.htm +http://www.ozemail.com.au/~pballard/gnt_hidden123/act9.htm +http://www.ozemail.com.au/~pballard/gnt_hidden123/rom7.htm +http://www.ozemail.com.au/~pballard/gnt_hidden123/2co13.htm +http://www.ozemail.com.au/~pballard/gnt_hidden123/heb12.htm +http://www.ozemail.com.au/~pballard/gnt_hidden123/jam4.htm +http://ftp.darenet.dk/tucows/winnt/adnload/1449_29554.html +http://www.chaos.dk/sexriddle/w/j/u/o/ +http://www.chaos.dk/sexriddle/w/j/u/v/ +http://opac.lib.rpi.edu/search/tmcgraw+hill+series+in+advanced+chemistry/-5,-1,0,B/frameset&tmcgraw+hill+series+in+advanced+chemistry&9,,42 +http://www.zcu.cz/ftp/mirrors/pgp/6.5/6.5.1/win/ +http://webpolitik.subportal.com/sn/Multimedia_and_Graphics/Misc__Graphics_Tools/12852.html +http://ftp.lip6.fr/pub2/perl/CPAN/doc/manual/html/lib/SysV/SysV.html +http://bbs.gznet.edu.cn/cgi-bin/getannounce//groups/GROUP_9/Telecom/friend/fbf/ewqtr +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-10.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-88.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-92.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-177.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-178.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-229.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-288.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9709/date/article-293.html +http://www.usq.edu.au/unit-1997/fullspec/54081s2x.htm +http://sound-dist.secured.co.uk/cgi-bin/psProdDet.cgi/15P04|972959617|Helmet|user|0|1,0,0,0 +http://www.buybuddy.com.au/sleuth/8/1/5010204/40843/ +http://www.maxpages.com/vote.cgi?site=pokemonyellow1&pg=Home +http://rex.skyline.net/html/Automobiles_-_Dealers_-_Used.html?64,outdoor,transportation,collectibles,transportation +http://www.linux.com/networking/network/communications/management/updates/Windows_NT/ +http://retailer.gocollect.com/do/session/1912735/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/top_ten.asp?pagenum=1 +http://amarilloglobenews.com/stories/031000/ +http://www.egroups.com/post/swish?act=reply&messageNum=275 +http://www.apcmag.com/apcweb/reviewsdisc.nsf/aac7d56ca8fd884b852563be00610639/af5bb64432e7f9444a2565240026bbbf!Navigate&To=PrevMain +http://best.netease.com/guestbook/personal/zhuirinew3.html +http://best.netease.com/cgi-bin/view/viewbasic.cgi?japanboy4 +http://www.ftp.uni-erlangen.de/cgi-bin/view/pub/mirrors/redhat/current/i386/doc/gsg/ch-basics.htm +http://www.ftp.uni-erlangen.de/cgi-bin/view/pub/mirrors/redhat/current/i386/doc/gsg/p5202.htm +http://splitrock.themes.tucows.com/preview/77000.html +http://splitrock.themes.tucows.com/preview/25855.html +http://splitrock.themes.tucows.com/preview/134493.html +http://splitrock.themes.tucows.com/preview/14722.html +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=13,0-22,0+15,0-0,2 +http://www.icopyright.com/1.1634.64625 +http://mvweb.de/olympia/nachrichten/sportarten/ergebnisse/bdt-190900-438-dpa_153140.html +http://www.rge.com/pub/tex/fonts/armtex/v2.0/examples/plain/ +http://www.club-internet.fr/cgi-bin/h?Antibes +http://www.caprili.it/santantimo.htm +http://dic.empas.com/show.tsp/?q=%C3%EB%C8%EF%20%F6%AD%FD%E9&f=B +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=98&discrim=2,38 +http://www.artex.firenze.it/_qualitart/articoli/zoom/02235.htm +http://home.powertech.no/huftis/w3c/TR/WAI-WEBCONTENT-NO-NYN/checkpoint-list.txt +http://mtlab.biol.tsukuba.ac.jp/WWW/PDB2/PCD0467/htmls/07.html +http://library.cuhk.edu.hk/search*chi/aShu,+Tien-min./ashu+tien+min/-5,-1,0,B/exact&F=ashu+tsung+chiao&1,6 +http://www.trnonline.com/archives/2000archives/05242000/how_now_joe_brown/23506.shtml +http://www.bemi-immobilien.de/Exklusiv-IB/Startseite/Gemeinsam/versicherungen/gebaeude/Gemeinsam/MarketingStrategie/Gemeinsam/erreichenPartner/Gemeinsam/versicherungen/lebensversicherung/Startseite/frinfo.htm +http://santabarbarashops.com/Mall/Stores/StoreInfo/asp/store-id/1000007121.html +http://www.angelfire.com/ok/americassweetheart/UNique.html +http://ukinvest.ukwire.com/articles/199909070731000375A.html +http://www.streetprices.com/Electronics/Consumer/Camcorders/Digital/sortproductbylowprice/SP374033.html +http://www.streetprices.com/Electronics/Consumer/Camcorders/Digital/sortproductbylowprice/SP363722.html +http://www.streetprices.com/Electronics/Consumer/Camcorders/Digital/sortproductbylowprice/SP288187.html +http://www.streetprices.com/Electronics/Consumer/Camcorders/Digital/sortproductbylowprice/SP288192.html +http://www.bemi-immobilien.de/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/Gemeinsam/versicherungen/gebaeude/Startseite/Gemeinsam/Gemeinsam/immolink/Top-Darlehens-Konditionen/anforderungsformular.htm +http://celes.subportal.com/sn/Business/Standard_Calculators/index1.html +http://www.linux.com/networking/network/networking/it/future/firewall/ +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=198&discrim=87,19,3 +http://www.hig.se/(append,define,language,quote,tablify)/~jackson/roxen/ +http://www.guba.com/114/236/12fE/index-3.phtml +http://genforum.genealogy.com/tn/messages/7906.html +http://207.138.41.133/message/BienestarCalifornia/16 +http://207.138.41.133/message/BienestarCalifornia/26 +http://chasnaz.freeyellow.com/email.html +http://genforum.genealogy.com/cgi-bin/print.cgi?mcevoy::217.html +http://www.civila.com/brasil/fov/ +http://www.emerchandise.com/associates/b.FAVORITES%20PAGEANTS/s.oAq5vp1w +http://www.emerchandise.com/help_security/b.FAVORITES%20PAGEANTS/s.oAq5vp1w +http://www.z-plus.de/freizeit/kino/galerie/roula/kritikwelt.html +http://www.angelfire.com/mo2/MrMime2000/wewon.html +http://www.gazeta.com/Iso/Regiony/Lodz/Raporty/Jedzenie/Jedz/020jed.html +http://www.sportas.de/ddsup00.htm +http://muc-zvs-web1.goethe.de/an/mel/wabhorst/dtourism.htm +http://www.cardina.net/~erps +http://www.polbox.com/p/paruwa/spec.html +http://ww2.comune.fe.it/cgi-win/hiweb.exe/a2/d72/b31,e,1f,b,b,50,50,,3,,1f,3,9,,1f,9, +http://www.ld.com/cbd/archive/1999/03(March)/29-Mar-1999/15awd002.htm +http://dk.egroups.com/post/cbradio?act=reply&messageNum=823 +http://aecjobbank.com/texis/script/newjobs/+lww7mwww0xBV6e52iHwwwesPBB2eZmwwwt6erV0Vwwwh6er6Gswwwt6er6bgwwwt6etDL-www+6ethrCwwxeRT43eR4mwwwt6etrvuwwwn6KeU-wwwmcmrmwxerjmx7mwww1hzmww-eHxww/jobdirectory.html +http://www.envy.nu/summerslip/past.html +http://www.envy.nu/summerslip/leave.html +http://home.pacific.net.sg/~kinnkinn/ +http://www.bluesapphires.net/ladies/lv0444.shtml +http://www.freerepublic.com/forum/a4148bd.htm +http://www.sdinfonet.com.cn/024/32/024329969.htm +http://www.sdinfonet.com.cn/024/32/024329953.htm +http://www.jpc-music.com/8754347.htm +http://www.jpc-music.com/5183511.htm +http://www.jamba.nl/KNet/_KNet-ytO8j1-7D4-pwef/browse.nl/node.0/cde7f38ny +http://dk.egroups.com/message/noholdsbarred/210 +http://uoi.tucows.com/winme/preview/75912.html +http://207.197.132.133/lobbyists/98profiles/556.htm +http://www.jobvillage.com/channel/jobs/protective_services/private_investigator/g.4.html +http://www.jobvillage.com/channel/jobs/protective_services/private_investigator/b.8946.g.4179.html +http://aleph.tau.ac.il:4500/ALEPH/eng/ATA/AAS/AAS/SET-MAIL/381462/11/ +http://www-rn.informatik.uni-bremen.de/home/X11R6/xc/lib/font/Speedo/?D=A +http://www.brio.de/BRIO.catalog/39fe2f7006f69fb6273fd472aa78073d/UserTemplate/6 +http://cardiology.medscape.com/IMNG/ClinPsychNews/1998/v26.n07/cpn2607.34.01.html +http://www.incestpornstories.com/hot-hardcore-fuckingbanging/plus-sizewhale/slutspretty/slutsbest-friends/erectionfellatio/bisexualtinkerbell.html +http://yp.gates96.com/7/65/10/40.html +http://yp.gates96.com/7/65/11/15.html +http://yp.gates96.com/7/65/11/34.html +http://yp.gates96.com/7/65/11/69.html +http://yp.gates96.com/7/65/11/88.html +http://yp.gates96.com/7/65/12/95.html +http://yp.gates96.com/7/65/13/82.html +http://yp.gates96.com/7/65/13/91.html +http://yp.gates96.com/7/65/13/93.html +http://yp.gates96.com/7/65/14/2.html +http://yp.gates96.com/7/65/14/8.html +http://yp.gates96.com/7/65/15/31.html +http://yp.gates96.com/7/65/15/38.html +http://yp.gates96.com/7/65/15/51.html +http://yp.gates96.com/7/65/15/95.html +http://yp.gates96.com/7/65/15/96.html +http://yp.gates96.com/7/65/16/4.html +http://yp.gates96.com/7/65/16/20.html +http://yp.gates96.com/7/65/16/58.html +http://yp.gates96.com/7/65/17/22.html +http://yp.gates96.com/7/65/17/66.html +http://yp.gates96.com/7/65/18/37.html +http://yp.gates96.com/7/65/18/69.html +http://yp.gates96.com/7/65/18/97.html +http://yp.gates96.com/7/65/19/0.html +http://yp.gates96.com/7/65/19/12.html +http://yp.gates96.com/7/65/19/16.html +http://yp.gates96.com/7/65/19/28.html +http://yp.gates96.com/7/65/19/37.html +http://yp.gates96.com/7/65/19/44.html +http://dyade.inrialpes.fr/aaa/public/java/jdk1.3/docs/api/javax/swing/plaf/basic/class-use/BasicSplitPaneUI.KeyboardUpLeftHandler.html +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/asiasanahaku/kalatalous/ty%F6voimapolitiikka/pienet+ja+keskisuuret+yritykset/maatilatalous/ +http://www.ferien-immobilien.de/ungarn/verkauf/Gemeinsam/MarketingStrategie/Allgemeine-IB/Private-IB/Private-IB/Startseite/Default.htm +http://ftp.du.se/disk2/CPAN/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/WWW/libwww-perl-5.43.readme +http://ftp.du.se/disk2/CPAN/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/WWW/libwww-perl-5.46.readme +http://ftp.du.se/disk2/CPAN/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/WWW/webchat-0.05.readme +http://209.0.220.240/biz/541519/541-389-1493.htm +http://www.shsu.edu/wcb/schools/SHSU/sed/rmzoubi/12/forums/forum54/wwwboard.html +http://retailer.gocollect.com/do/session/1912768/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/news/index.asp +http://romulus.ehs.uiuc.edu/cgi-bin/lwgate/RADSAFE/archives/radsafe9610/Date/article-33.html +http://romulus.ehs.uiuc.edu/cgi-bin/lwgate/RADSAFE/archives/radsafe9610/Date/article-31.html +http://www.acfas.ca/congres/congres67/S408.htm +http://pub1.ezboard.com/fthehawkeyehotspotfrm16.showMessage?topicID=178.topic +http://archives.marshall.edu/~mccomas/cd315-spring00-list/1549.html +http://www.asiastockwatch.com/AsiaStockWatch_-_Cached/Articles/asw_recommend_friend_con/1,1145,617_1_1:3,00.html +http://wiem.onet.pl/wiem/014a7e.html +http://linux99.inrialpes.fr/linux/RPM/kondara/1.2/errata/bugfixes/i586/System_Environment_Daemons.html +http://linux99.inrialpes.fr/linux/RPM/kondara/1.2/errata/bugfixes/i586/User_Interface_X.html +http://cn.egroups.com/login.cgi?login_target=%2Fmessage%2FWeb_Holidays%2F35 +http://library.bangor.ac.uk/search/aEuropean+Academy+of+Allergology+and+Clinical+Immunology/aeuropean+academy+of+allergology+and+clinical+immunology/7,-1,0,B/bibandlinks&F=aeuropean+association+for+animal+production+commission+on+animal+management&1,1 +http://www4.freeweb.ne.jp/art/fujiso/gehp/pge222.html +http://pnews.jcc.co.jp/scoop/9905/990506kk2-3ss.html +http://ring.nii.ac.jp/archives/linux/Vine/Vine-1.1/kernel-2.2.x-kit/RPMS/ +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=81&discrim=8,230,214 +http://www.emerchandise.com/browse/BUFFYTHEVAMP/KEYCHAIN/b.TV%20BUFFYTHEVAMP/s.DfgPpLQw +http://www.emerchandise.com/browse/BUFFYTHEVAMP/MAGNET/s.DfgPpLQw +http://www.koms.de/I-Data/Upgrades/HostCom/Cx/isp/?S=A +http://www.back2roots.org/Aminet/Forums/Util--Wb--Amero36/ +http://www.hig.se/(autoformat,define,en,modified,referrer)/~jackson/roxen/ +http://216.35.79.131/sites/gunits/052302u.html +http://216.35.79.131/sites/gunits/052303u.html +http://216.35.79.131/sites/gunits/032883u.html +http://itcareers.careercast.com/texis/it/itjs/+4wwBmecXD86ExwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewShwAwMwoacnwmamnpcdOMnDBaMwoDBnDwDqnanDtoDnnGaDnBidGAaoDqc1mna5BGdDtaADdicnmtnaGn31oGnmaMFqtwAwMwoDzmeZxwwwpBmIe0B-decrwww5rmeAdwwwBrmeZpwww/morelike.html +http://troy.lib.sfu.ca/search/tadvocate+vanc/tadvocate+vanc/7,-1,0,B/browse +http://210.159.30.200:8080/-_-http://www2s.biglobe.ne.jp/~proton/kokuritu/ +http://210.159.30.200:8080/-_-http://www2s.biglobe.ne.jp/~proton/mituzawa/mitusta.html +http://config.tucows.com/win2k/monitor2k_size.html +http://config.tucows.com/win2k/adnload/136674_47327.html +http://www.thisisyork.com/york/news/YORK_NEWS_CAMPAIGNS_POSTOFFICE5.html +http://yp.gates96.com/5/78/0/35.html +http://yp.gates96.com/5/78/0/41.html +http://yp.gates96.com/5/78/0/65.html +http://yp.gates96.com/5/78/0/79.html +http://yp.gates96.com/5/78/0/81.html +http://yp.gates96.com/5/78/1/33.html +http://yp.gates96.com/5/78/1/76.html +http://yp.gates96.com/5/78/2/0.html +http://yp.gates96.com/5/78/2/65.html +http://yp.gates96.com/5/78/3/37.html +http://yp.gates96.com/5/78/4/31.html +http://yp.gates96.com/5/78/4/60.html +http://yp.gates96.com/5/78/4/73.html +http://yp.gates96.com/5/78/5/28.html +http://yp.gates96.com/5/78/5/65.html +http://yp.gates96.com/5/78/6/12.html +http://yp.gates96.com/5/78/6/38.html +http://yp.gates96.com/5/78/6/99.html +http://yp.gates96.com/5/78/7/48.html +http://yp.gates96.com/5/78/8/49.html +http://yp.gates96.com/5/78/8/55.html +http://yp.gates96.com/5/78/8/71.html +http://yp.gates96.com/5/78/9/19.html +http://yp.gates96.com/5/78/9/94.html +http://link.fastpartner.com/do/session/600420/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/fastpartner.php +http://www.highwired.net/Guidance/UniversalNav/Redirect/0,5314,15089-15089-728,00.html +http://ring.tains.tohoku.ac.jp/archives/lang/perl/CPAN/modules/by-module/Math/ILYAZ/os2/?S=A +http://www.outpersonals.com/cgi-bin/w3com/pws/out/DzRIZER-v0LffJEf3raIMcG3_vXLUQncNB0JHLK7Xt_XcNu5W9Xwg3bnK7e0BWrbchX2jMSNnK6eY6UuDPq6GFLMrzB0DcydY5VgMGVRUFbdksWiDCuTI0LBo3psuJxBJjEd +http://www.outpersonals.com/cgi-bin/w3com/pws/out/vihIvBk0g-CdjheZ4MILAcJAB--YtsE3nzjAldQSrSojV9JzVQJV-1yVbCi9rsPamZBGc9GfXE6dq1sCz-CnrfwDCHqr_nfUtl2qUN5oWAHphPSuuQXCc2fjfBv3EI-W4XBgp-ANhxEJS0536665 +http://www.outpersonals.com/cgi-bin/w3com/pws/out/VihIDgZ6TF6W8zfPesIFMiw-CNzcKPLyYr5OXnsaqepOa1j4Wz2V-pVOhRfX5lUkxRpYs_BkTdpvjf7zUAk3RdhEaXDfmzm4RA2CLjQ84zSbEZ_Vil1cFFmY0FFZr5oIErljk11AnTlYM6y066jO +http://www.outpersonals.com/cgi-bin/w3com/pws/out/dRhIQJ3pEIfD5uG_JFeaP3_7Bke37Z5pJi0A-hZ_-kxEK4Z1jl3HNb6d3hgJ7UZ34jMQGSNzhYuMNxB-oyBon62h9GWx3Xt1Zk_o4kS3s9ybikCpzetMwprVGDCC-YzllwvEWxmP66jF +http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/24161000003783000000741030000081551/v2tvindex.wo/810000000071551/1.0.4/3/Webobjects1 +http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d3345/b77,c,4d,469,469,46e,46e,168e,168e,,51,,4d,51, +http://findmail.com/messages/themcse/102 +http://netcon.tucows.com/winme/adnload/136907_28427.html +http://netcon.tucows.com/winme/adnload/136906_30076.html +http://www.jyu.fi/~heili/tietoverkot/?S=A +http://www1.onelist.com/dir/1/16/483/32773?st=10 +http://www1.onelist.com/messages/animadores +http://seussville.com/teachers/authors/ayre.html +http://seussville.com/teachers/authors/corm.html +http://www.tente.de/sw/produkte/rubriksuche/aa000001461.htm +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=57&discrim=165,57,164 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=57&discrim=165,57,207 +http://jars.developer.com//classes/jresout.cgi?resource=2897 +http://members.tripod.co.jp/spirits/?S=A +http://homepages.go.com/homepages/i/u/g/iuguy22/ +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=21,5,24 +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=31,5,24 +http://troy.lib.sfu.ca/search/delectrolytes+periodicals/delectrolytes+periodicals/-5,-1,0,B/exact&F=delectrolytes+congresses&1,3 +http://www.rdg.ac.uk/ITS/Topic/Stats/StGSAS8_01/SAS8/af/z0254912.htm +http://www.rdg.ac.uk/ITS/Topic/Stats/StGSAS8_01/SAS8/af/z0254924.htm +http://ring.jec.ad.jp/local/mirror/FreeBSD-current/snapshots/i386/5.0-20000902-CURRENT/compat20/ +http://ring.jec.ad.jp/local/mirror/FreeBSD-current/snapshots/i386/5.0-20000902-CURRENT/dict/ +http://ring.jec.ad.jp/local/mirror/FreeBSD-current/snapshots/i386/5.0-20000902-CURRENT/manpages/ +http://www.xmission.com/~dkenison/cgi/lwgate.cgi/KLR650/archives/v02.n1682/date/article-7.html +http://ring.toyama-ix.net/pub/linux/Vine/Vine-2.0/ppc/?S=A +http://romulus.ehs.uiuc.edu/cgi-bin/lwgate/RADSAFE/archives/radsafe9907/Date/article-80.html +http://www.officeqmart.com/cgi-bin/qmart.front/972959552267/Catalog/3000033 +http://www.checkout.com/member/movies/title/member_reviews_form/1,7722,882122,00.html +http://mindit.netmind.com/proxy/http://www.siennasoft.com/english/order/orders_retail.shtml +http://pelit.saunalahti.fi/.1/tucows/adnload/267_29529.html +http://pelit.saunalahti.fi/.1/tucows/adnload/7574_29534.html +http://zenha.myrice.com/2/23.htm +http://zenha.myrice.com/2/20.htm +http://citeseer.nj.nec.com/cachedpage/62677/1 +http://citeseer.nj.nec.com/check/248055 +http://www.3wbooks.de/BrackRuth/BrackRuth3258053200.htm +http://preview.egroups.com/group/u_exactus +http://preview.egroups.com/group/ticovista +http://www.linux.com/networking/linux/support/va_linux_systems/price/sales/ +http://kulichki-mac.rambler.ru/moshkow/akm/zercalo/kosmix/03.html +http://innopac.lib.tsinghua.edu.cn:2080/search*chi/tStructure+and+bonding+&%2359%3B+70/tstructure+and+bonding+++70/19,-1,0,B/browse +http://www.science.uva.nl/pub/NetBSD/NetBSD-current/pkgsrc/archivers/gcpio/files/ +http://www-d0.fnal.gov/d0dist/dist/releases/pmc04.00.00/calibration_management/?S=A +http://mvweb.de/olympia/nachrichten/sportarten/news/bdt-290900-158-dpa_173282.html +http://www.scifi.com/bboard/browse.cgi/3/1/69/57?pnum=2 +http://www.diogenes.ch/4DACTION/web_rd_aut_prview/a_id=7056459&area=&ID=483365 +http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/authors/id/L/LA/LAXEN/?D=A +http://www.affiliate.hpstore.hp.co.uk/do/session/380856/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/Main/acheterhp/ +http://library.cuhk.edu.hk/search*chi/aLu,+Li,+1914-/alu+li+1914/-5,-1,0,B/frameset&F=alu+li+chun&1,1 +http://www-usa4.cricket.org/link_to_database/ARCHIVE/2000-01/IND_LOCAL/WOMEN/OTHERS/KLCA-SL/SQUADS/ +http://www.babyheirlooms.com/catalog/htmlos.cat/041141.1.4425650346 +http://193.207.57.3/cgi-win/hiweb.exe/a2/d9/b1305,4,5,,1f,5, +http://www.icopyright.com/1.1664.228033 +http://www.trax.nilex.co.uk/trax.cgi/A1C/B1S/1AR/A2S/A1S/D1L/ +http://www.trax.nilex.co.uk/trax.cgi/A1C/B1S/1AR/A2S/A1S/A2S/ +http://www.ferien-immobilien.de/baden-wuertemberg/calw/Verkauf/Gemeinsam/Inserieren/Private-IB/Gemeinsam/Super-Zins-Konditionen/3d-service/info.htm +http://sunsite.informatik.rwth-aachen.de/LinuxArchives/redhat/releases/guinness/i386/en/dosutils/fips15c/restorrb/ +http://213.36.119.69/do/session/153002/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/connaitre/revue-presse_titres.html +http://pub19.ezboard.com/uvinylangel.showPublicProfile?language=EN +http://boeing_dude.tripod.com/id125_m.htm +http://members.fortunecity.com/greatway1/gallery-pageother-0.htm +http://www.searchtraffic.com/wsignup.php3?owor12 +http://www.staroriental.net/nav/soeg_c/ihf,acv,s0,194,陳慧琳.html +http://www.jpc-music.com/5864555.htm +http://oaziz.narod.ru/kuhn/uzb/sal_f1.html +http://preview.egroups.com/message/4aromatherapy/1112 +http://www.luecos.de/webguides/reisen/travelpictures/europe +http://www.maas.ccr.it/cgi-win/hiweb.exe/a18/d47/b47,8,be,29,29,,38,,be,38, +http://www.chaos.dk/sexriddle/k/u/u/a/ +http://www.chaos.dk/sexriddle/k/u/u/d/ +http://student.monterey.edu/nr/nielsenadamp/campus/ +http://excite.de/gesundheit/katalog/3727 +http://www.ozemail.com.au/~jcai/page19.html +http://www.ozemail.com.au/~jcai/page24.html +http://www.hantsnet.co.uk/scrmxn/c23173.html +http://www.fogdog.com/cedroID/ssd3040183334784/content/fan/subway_series/ +http://www.fogdog.com/cedroID/ssd3040183334784/boutique/arnette/ +http://www.fogdog.com/cedroID/ssd3040183334784/boutique/hi-tec/ +http://www.fogdog.com/cedroID/ssd3040183334784/boutique/marmot/ +http://ftpsearch.belnet.be/packages/CPAN/modules/by-module/Stat/ENNO/ +http://go1.163.com/_NTES/~yejingsong/03/y18/506.htm +http://sinr.net/book/content/343/26710.html +http://www.ramada.com/ctg/cgi-bin/Ramada/progpack/AAAksrACwAAABtrAAV +http://library.bangor.ac.uk/search/aBoer,+J.+H.+de+(Jan+Hendrik),+1899-/aboer+j+h+de+jan+hendrik+1899/-5,-1,0,B/buttonframe&F=aboer+dirk+jan+den&1,1 +http://library.cuhk.edu.hk/search*chi/a三省堂(千代田區,+Tokyo,+Japan)/a%7B213024%7D%7B214d49%7D%7B213840%7D+%7B213458%7D%7B213073%7D%7B214c24%7D%7B213455%7D+tokyo+japan/-5,-1,0,B/browse +http://ibm1.cicrp.jussieu.fr/ibmc/classref/ref/ISetCanvas--Style_DSC.htm +http://amateur-alley.porncity.net/169/ +http://www.teacherformation.org/html/od/facilitators.cfm/task1,about/discussion_id,2/xid,1989/yid,5768630 +http://www.shopworks.com/index.cfm/action/mallcat/mallcatlevel/2/parentmallcat/6/userid/000056F0-2E26-19FE-AF65010C0A0A8CF2 +http://retailer.gocollect.com/do/session/1912760/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/shipping_policy.asp +http://news.novgorod.ru/news/2001/4/1/8/-1 +http://news.novgorod.ru/news/2001/4/3/8/-1 +http://sp201.unige.ch:49213/cxxdoc/classref/ref/ITimingTestStopwatch_DSC.htm +http://netscape.digitalcity.com/boston/localexperts/profile.dci?screenName=PSYWU +http://netscape.digitalcity.com/boston/localexperts/profile.dci?screenName=Mende67 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=17,2,26,33,23 +http://www.multicosm.com/facade/www.isinet.com/isilinks/isilinks.html +http://kutschen.de/Schoner/Info-d/history/history/literature/ +http://troy.lib.sfu.ca/search/dengineering+research+periodicals/dengineering+research+periodicals/-5,-1,0,B/frameset&F=dengineering+research+grants+canada&3,,4 +http://member.nifty.ne.jp/y-shibata/pc/pch2.htm +http://stocks.tradingcharts.com/stocks/charts/iops-bb/m +http://www.kaos.dk/sexriddle/x/j/c/s/z/ +http://www.bioimages.org.uk/HTML/R138925.HTM +http://pub22.ezboard.com/fawolpaintballfrm1.threadControl?topicID=82.topic +http://www.incestpornstories.com/hot-hardcore-fuckingbanging/plus-sizewhale/body-shotstounge/fuckinghardcore/barely-legalbackseat/{gaylink} +http://www.buybuddy.com/sleuth/27/1/1060904/5811/ +http://www.loisirs.ch/gtfmjv/9/nkrlua.html +http://vorg1.subportal.com/sn/Utilities/File_Maintenance_and_Repair_Utilities/6387.html +http://smartnet.tucows.com/winme/adnload/138584_30392.html +http://ftpsearch.belnet.be/mirrors/src.doc.ic.ac.uk/usenet/usenet-by-hierarchy/comp/emacs/?D=A +http://genforum.genealogy.com/cgi-genforum/forums/green.cgi?7578 +http://cio.cisco.com/warp/public/789/33.html +http://www7.freeweb.ne.jp/diary/bru_dog/tk/ +http://www.chinabyte.com/staticpages/software/software_download/GRBA/software_download_23274_GRBA.html +http://www.chinabyte.com/staticpages/software/software_download/GRBA/software_download_9599_GRBA.html +http://www.seekon.com/L/US/IL/Abingdon +http://freethemes.arrakis.es/skins/winamp/adnload/25359.html +http://www.hig.se/(accessed,modified,remove_cookie,smallcaps,sqlquery)/~jackson/roxen/ +http://cn.egroups.com/message/SF-users/218 +http://cn.egroups.com/message/SF-users/235 +http://www.chaos.dk/sexriddle/r/f/y/c/ +http://www.chaos.dk/sexriddle/r/f/y/e/ +http://www.chaos.dk/sexriddle/r/f/y/g/ +http://yp.gates96.com/13/50/10/33.html +http://yp.gates96.com/13/50/10/49.html +http://yp.gates96.com/13/50/10/55.html +http://yp.gates96.com/13/50/10/98.html +http://yp.gates96.com/13/50/11/35.html +http://yp.gates96.com/13/50/11/73.html +http://yp.gates96.com/13/50/11/94.html +http://yp.gates96.com/13/50/12/39.html +http://yp.gates96.com/13/50/13/8.html +http://yp.gates96.com/13/50/13/67.html +http://yp.gates96.com/13/50/14/8.html +http://yp.gates96.com/13/50/14/11.html +http://yp.gates96.com/13/50/14/47.html +http://yp.gates96.com/13/50/16/18.html +http://yp.gates96.com/13/50/16/58.html +http://yp.gates96.com/13/50/17/33.html +http://yp.gates96.com/13/50/18/13.html +http://yp.gates96.com/13/50/18/49.html +http://yp.gates96.com/13/50/18/54.html +http://yp.gates96.com/13/50/19/0.html +http://cn.egroups.com/post/romtrade?act=reply&messageNum=3851 +http://members.fortunecity.com/toleransi/sorbonne.html +http://ring.htcn.ne.jp/pub/lang/perl/CPAN/modules/by-module/PPM/MURRAY/?S=A +http://sunsite.berkeley.edu/PhiloBiblon/BITAGAP/BIB/BIB5648.html +http://sunsite.berkeley.edu/PhiloBiblon/BITAGAP/BIB/BIB7392.html +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus53940/eus53960/eus54753/eus543189/eus550516/ +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus53940/eus53960/eus54753/eus543189/eus550528/ +http://shn.webmd.com/roundtable_printing/774674 +http://www.zi.unizh.ch/software/unix/statmath/sas/sasdoc/lgref/z0205140.htm +http://www.hblb.org.uk/hblbweb.nsf/$Pages/NewsArchive1!OpenDocument&ExpandSection=16,12,3,13,5,6,9 +http://www.uni-duesseldorf.de/ftp/ftp/pf/share/fvwm-2.0.45/?S=A +http://members.tripod.com/~PhyrePhox/mcse/70-088.htm +http://extreme-dm.com/tracking/reports/dj/nph-ref1.cgi?tag=nimrood +http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bp20040397/-5,-1,0,B/frameset&F=bp20040402&1,1 +http://209.0.220.240/spec/txve.htm +http://209.0.220.240/spec/tyai.htm +http://ftp.up.pt/Linux/Linus/net-source/www/clients/netscape/?M=A +http://ftp.up.pt/Linux/Linus/net-source/www/clients/netscape/?D=A +http://www.jobvillage.com/channel/jobs/health_care/nursing/licensed_practical_nurse/b.9505.g.1766.html +http://www.zope.org/Members/stevea/CoadObjectModels/BackLinks/backlinks +http://www.mairie-montreuil93.fr/ville_pratique/environ/energie/mve/media/?D=A +http://member.shangdu.net/home2/chr/jishang/hongkong/inxg-6.html +http://www.wild-dog.com/activity/touring/idx/page_18_1.html +http://members.tripod.co.jp/susu/?M=A +http://www.dulux.co.uk/UKRETAIL:623356687:DFinity.1QJiP4jMLco +http://www.kordic.re.kr/~trend/Content326/agriculture04.html +http://www.kordic.re.kr/~trend/Content326/agriculture09.html +http://ftp.lip6.fr/pub12/OpenBSD/src/gnu/egcs/config/mh-aix43 +http://ftp.lip6.fr/pub12/OpenBSD/src/gnu/egcs/config/mh-elfalphapic +http://ftp.lip6.fr/pub12/OpenBSD/src/gnu/egcs/config/mt-x86pic +http://www.ecatsbridge.com/BiB/static/sims/bbljuly99/00000101758612773F1.htm +http://pub20.ezboard.com/faustralianslotcarreviewhoracing.showMessage?topicID=2.topic&index=47 +http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/games/exchess/pkg/DESCR +http://homepage.renren.com/sandybay/help.htm +http://no.egroups.com/post/oslosynth?act=reply&messageNum=634 +http://www.brio.de/BRIO.catalog/39fe2f940703266c273fd472aa7806a8/UserTemplate/2 +http://www.50megs.com/prettysenshi/captures/ep3/SMep3.html +http://www.thisislancashire.co.uk/lancashire/archive/1999/11/05/CHORNEWS5VQ.html +http://au.yahoo.com/Regional/U_S__States/California/Metropolitan_Areas/San_Francisco_Bay_Area/Entertainment_and_Arts/Restaurants/Coffee_and_Tea_Houses/ +http://www.niwl.se/WAIS/30002/30002360.htm +http://www.infoscape.com.cn:8178/gb/content/2000-08/16/content_6082.htm +http://link.fastpartner.com/do/session/600419/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mondosoft.php +http://www.canit.se/(c1,f3,ftp,generellt,irc,mail)/support/ +http://citeseer.nj.nec.com/cidcontext/3787443 +http://www.affiliate.hpstore.hp.co.uk/do/session/380878/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/entry.asp +http://www.usq.edu.au/unit-1997/fullspec/51129s3x.htm +http://worldres.lycos.com/script/gen_mr.asp?hotel_id=6354&n=1518 +http://www.members.aon.at/~kleindlp/neue_seite_4.htm +http://210.169.76.95/html/tai_0043/bat_1180.html +http://oneplace.adbureau.net/accipiter/adclick/site=ONEPLACE/area=INDEX/POSITION=FOOTER/AAMSZ=468x60/ACC_RANDOM=262411779164 +http://www.service911.com/mvu/step/0,2632,6+34+90+23506+13880_4,00.html +http://ftp.lip6.fr/pub11/NetBSD/NetBSD-current/src/usr.sbin/kvm_mkdb/Makefile +http://www.bemi-immobilien.de/Private-IB/Startseite/Startseite/Gemeinsam/versicherungen/unfall/Gemeinsam/immolink/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/gebaeude/anforderungsformular.htm +http://wap.jamba.de/KNet/_KNet-BOC8j1-LFd-13bpy/showInfo-hilfe.de/node.0/cenv0b09a +http://wap.jamba.de/KNet/_KNet-BOC8j1-LFd-13bq0/browse.de/node.0/cde7f1uou +http://cnnews.sina.com/kwongzhou/china/2000/1026/2083022_2.html +http://www.msb.malmo.se/search*swe/dFlygplanskonstruktion/dflygplanskonstruktion/-5,-1,0,B/frameset&F=dflygolyckor&4,,6 +http://home.hanmir.com/~100sun/joo4.htm +http://www.szed.com/szsb/19990629/GB/default.htm +http://www.szed.com/szsb/19990629/GB/4-NPCLASS.HTM +http://www.szed.com/szsb/19990629/GB/7-NPCLASS.HTM +http://www2.kbank.no/Web/nlpublish.nsf/Published/ord_og_uttrykk!OpenDocument&ExpandSection=15,24,26,25 +http://movies.exit.de/lichtsammler/images/tunnel/gross/sw_kb/?D=A +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=5,34,38 +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=21,34,38 +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=31,34,38 +http://fi.egroups.com/login.cgi?login_target=%2Fmessage%2Fgamp%2F1734 +http://de.excite.de/katalog/katalog/9231 +http://www-win.rusf.ru/esli/rubr/books/es0500di.htm +http://www.jamba.de/KNet/_KNet-yjF8j1-8Gd-13cj6/browse.de/node.0/cde7f1uou +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/misc/lit/programs/misc/math/lit/athalie.html +http://ftp.fi.debian.org/debian/dists/Debian2.2r0/contrib/binary-powerpc/interpreters/?S=A +http://jupiter.u-3mrs.fr/~msc41www/releves/04350110.HTM +http://ocean.ntou.edu.tw/search*chi/dDigital+modulation/ddigital+modulation/7,-1,0,E/frameset&F=ddigital+techniques+signal+processing&4,,0 +http://pub20.ezboard.com/fcharmingtailsresourcetradeyoursportscardshere.unsubscribeUnregisteredToTopic?topicID=43.topic +http://www.kaos.dk/sexriddle/x/w/k/u/q/ +http://www.kaos.dk/sexriddle/x/w/k/u/t/ +http://216.205.158.3/smm/programs/CDG_Player/wwwboard/messages/27.html +http://216.205.158.3/smm/programs/CDG_Player/wwwboard/messages/60.html +http://fen.com/whatworks/review/edit/1,2560,1-9696-5539-0-45394,00.html +http://yp.gates96.com/8/74/30/30.html +http://yp.gates96.com/8/74/31/1.html +http://yp.gates96.com/8/74/32/12.html +http://yp.gates96.com/8/74/32/60.html +http://yp.gates96.com/8/74/32/92.html +http://yp.gates96.com/8/74/33/41.html +http://yp.gates96.com/8/74/33/55.html +http://yp.gates96.com/8/74/33/57.html +http://yp.gates96.com/8/74/33/95.html +http://yp.gates96.com/8/74/34/21.html +http://yp.gates96.com/8/74/34/23.html +http://yp.gates96.com/8/74/34/79.html +http://yp.gates96.com/8/74/35/3.html +http://yp.gates96.com/8/74/35/22.html +http://yp.gates96.com/8/74/35/79.html +http://yp.gates96.com/8/74/36/31.html +http://yp.gates96.com/8/74/36/84.html +http://yp.gates96.com/8/74/37/58.html +http://yp.gates96.com/8/74/37/77.html +http://yp.gates96.com/8/74/37/89.html +http://yp.gates96.com/8/74/37/97.html +http://yp.gates96.com/8/74/39/43.html +http://yp.gates96.com/8/74/39/63.html +http://yp.gates96.com/8/74/39/88.html +http://www9.hmv.co.uk:5555/do/session/1347828/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/newmenu.html +http://www9.hmv.co.uk:5555/do/session/1347828/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/departments/d80_sd0_pt0.html +http://gladstone.uoregon.edu/~sme28057/arch181-202/assign2/?M=A +http://cco.cisco.com/univercd/cc/td/doc/product/core/7206/7206ig/trble6ug.pdf +http://210.32.1.18/goldbook/humor/mh/c/changgu/1/028.htm +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=17,28,24,31,11 +http://www.spiral.at/Katalog/Artikel/7561032/ +http://www.crutchfield.com/cgi-bin/S-Ql7dbZlSZa2/viewcart.asp +http://www.fogdog.com/cedroID/ssd3040183327788/nav/products/winter_sports/1b/shell_pants/ +http://www.fogdog.com/cedroID/ssd3040183327788/nav/products/winter_sports/1j/oakley/ +http://www.fogdog.com/cedroID/ssd3040183327788/nav/products/winter_sports/1l/day_packs/ +http://www.thestateofcolorado.com/pglblock.html +http://www.staroriental.net/nav/soeg/ihf,adj,s0,259,Kristy+Yeung+Gung-Yu.html +http://pcmcia.sourceforge.org/cgi-bin/HyperNews/get/pcmcia/toshiba/38.html +http://sunsite.org.uk/public/public/packages/Dr-Fun/df9412/?N=D +http://nt.mortgage101.com/partner-scripts/1144.asp?p=mig&pw=600 +http://biblioteca.upv.es/bib/doc/doc_fisbd/17/87050//C/1828104/3////25/N/MLTPAI +http://130.80.29.3/content/houston/k-12/hanc/ +http://javatest.a-net.nl/exhibits/default.htm +http://javatest.a-net.nl/museum_info/job_opportunities.asp +http://books.hyperlink.co.uk/booklist/Alphabet_Workbook/Cheney/Martha/1565658396 +http://kobe.cool.ne.jp/orera/guestbook.html +http://ftp.eecs.umich.edu/pub/NetBSD/packages/1.4.1/vax/audio/ +http://ftp.eecs.umich.edu/pub/NetBSD/packages/1.4.1/vax/editors/ +http://ftp.eecs.umich.edu/pub/NetBSD/packages/1.4.1/vax/tk80/ +http://www.zdnet.de//news/artikel/1999/03/09001-wc.html +http://neptune.guestworld.com/gear/gateway.cfm?action=private&owner=sitonga7 +http://www.de.lycos.de/dir/Reisen_und_Regionen/L%E4nder_und_St%E4dte/Deutschland/Schleswig-Holstein/St%E4dte_und_Orte/St%E4dte_und_Orte_P_bis_S/ +http://www.mirror.edu.cn/res/sunsite/pub/academic/music/album-reviews/1995/9-September/?M=A +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=213&discrim=176,11,57 +http://europa.eu.int/abc/doc/off/bull/el/9705/x085.htm +http://europa.eu.int/abc/doc/off/bull/el/9705/x209.htm +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=15,0+17,0-3,0-9,0 +http://www.ferien-immobilien.de/baden-wuertemberg/stuttgart/Verkauf/Gemeinsam/MarketingStrategie/Ferien-IB/Startseite/Gemeinsam/Super-Zins-Konditionen/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/indexbeginn.htm +http://www.ferien-immobilien.de/baden-wuertemberg/stuttgart/Verkauf/Gemeinsam/MarketingStrategie/Ferien-IB/Startseite/Gemeinsam/Super-Zins-Konditionen/Gemeinsam/impressum.htm +http://www.chaos.dk/sexriddle/s/e/x/v/i/a/w/ +http://pub4.ezboard.com/fscarletstreethorroritalianstyle.showAddReplyScreenFromWeb?topicID=15.topic +http://ftp.dti.ad.jp/pub/lang/CPAN/authors/id/P/PJ/PJF/ +http://www.highwired.net/Paper/EmailToFriend/1,2102,302-183023,00.html +http://ftpsearch.belnet.be/mirror3/ftp.kde.org/pub/kde/Incoming/Attic/old/1.1.2/apps/ide/?D=A +http://www.affiliate.hpstore.hp.co.uk/do/session/380877/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-creativeworld.com/creativeworld.asp?lang=f +http://expert.cc.purdue.edu/~steinfoc/assignment3/assig3.html +http://www.wyborcza.com/Ascii/Raporty/Filmowa/277rap.html +http://www.redhat.com/mirrors/LDP/LDP/LG/issue50/misc/pollman/?D=A +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=148&discrim=142,11,200 +http://www.marktplatz-hs.de/cgi-bin/ChioEditionShop.s/39fe2ee602379b7e273fd47540f806e1/Catalog +http://www.affiliate.hpstore.hp.co.uk/do/session/380836/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/SMARTTIPS/createbroch.asp +http://joy1.alpha-g.ne.jp/tree/user/a/amuro/2_index.shtml +http://time.188.net/movie/star/taiwan/2/pic/image36.htm +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=25,1,36,31,11 +http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/audio/kdemultimedia11-i18n/Attic/pkg-comment?only_with_tag=RELEASE_2_2_7 +http://www.landfield.com/ftp/usenet/news.answers/bicycles-faq/?S=A +http://wap.jamba.de/KNet/_KNet-puF8j1-aGd-13clg/browse.de/node.0/cenv0b09a +http://www.empas.com/search/all.html?q=%C0%CC%B7%D3%B4%D9 +http://www.linux.com/networking/server/install/howto/website/developers/ +http://aecjobbank.com/texis/script/newjobs/+NwxBm6ev7I1wwwhmrmwxetiAw/jobdirectory.html +http://www.egroups.com/message/ijtihadmk/5 +http://www.egroups.com/message/ijtihadmk/11 +http://www.realize.com/am67bd81.htm,qt=e784fe2f=2a38a234-7-da6e2d-0-0-0-3-- +http://www.realize.com/p643c81.htm,qt=e784fe2f=2a38a234-7-da6e80-0-0-0-3-- +http://moneysaver.net/netcall/?almktng +http://www.agria.hu/bikersmeeting/archivum/talalkozo/foto/taj.cgi?15n +http://link.fastpartner.com/do/session/600401/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/company/ +http://198.103.152.100/search*frc/aDidsbury,+Howard+F.,+1924-/adidsbury+howard+f+1924/-5,-1,0,B/frameset&F=adidier+marcel&1,,0 +http://198.103.152.100/search*frc/aDidsbury,+Howard+F.,+1924-/adidsbury+howard+f+1924/-5,-1,0,B/frameset&F=adidier+michel&1,,0 +http://www.medoc-ias.u-psud.fr:81/synoptic/gif/001020/?D=A +http://shop.goto.com/compperiph/periph/cdrom/search/sidexside.jhtml?s=1&sort_up=LOW_PRICE +http://excite.de/wirtschaft/katalog/1356 +http://excite.de/wirtschaft/katalog/2631 +http://www.areteoutdoors.com/channel/earth/caving/b.89.g.473.html +http://www.areteoutdoors.com/channel/earth/caving/b.91.g.473.html +http://bo.ole.com/actualidad/articulo/html/act13873.htm +http://www.dulux.co.uk/UKRETAIL:446033260:DFinity.1QJiP4jMomdoclfieh +http://www.linux.com/networking/network/release/sap/hardware/firewall/ +http://genforum.genealogy.com/cgi-genforum/forums/hendrix.cgi?430 +http://www.chaos.dk/sexriddle/s/p/w/c/ +http://198.103.152.100/search*frc/tCanada+in+the+21st+century.+II,+Resources+and+technology/tcanada+in+the+21st+century+ii+resources+and+technology/-5,-1,0,B/frameset&F=tcanada+in+the+21st+century+no+01&1,1 +http://books.hyperlink.co.uk/bookinfo/Sunk_Costs_and_Market_Structure/Sutton/John/0262193051 +http://members.tripod.com/theshavedbeaver/site2/s2laststand.html +http://members.tripod.com/theshavedbeaver/site2/s2s1ep21.html +http://www.ytmag.com/cgi-bin/redirect.cgi/602479760 +http://www18.freeweb.ne.jp/school/syodou/you005.htm +http://www.fogdog.com/cedroID/ssd3040183334500/nav/products/featured_brands/2h/replica_jerseys/ +http://www.fogdog.com/cedroID/ssd3040183334500/nav/products/featured_brands/2h/replica_jerseys/4.html +http://www.fogdog.com/cedroID/ssd3040183334500/crs/nvCZ/wld/fogdog_sports/champion/fan_memorabilia/apparel/vlade_divac_replica_jersey.html +http://www.jobvillage.com/channel/jobs/travel/travel_guide/b.4897.g.5299.html +http://www.bcbsal.org/Provider_Dir/pharmacy/state/Oregon/HILLSBORO/index_29061.html +http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d2066/b77,c,4d,469,469,1b65,1b65,,51,811,4d,51,811,, +http://www.loisirs.ch/bbewxu/2/wofyff.html +http://mitglied.tripod.de/Jag3/jag3b.htm +http://linuxberg.starhub.net.sg/x11html/preview/9016.html +http://linuxberg.starhub.net.sg/x11html/preview/9062.html +http://linuxberg.starhub.net.sg/x11html/preview/9103.html +http://linuxberg.starhub.net.sg/x11html/preview/9820.html +http://linuxberg.starhub.net.sg/x11html/preview/10370.html +http://linuxberg.starhub.net.sg/x11html/preview/9965.html +http://linuxberg.starhub.net.sg/x11html/preview/10117.html +http://linuxberg.starhub.net.sg/x11html/preview/10129.html +http://linuxberg.starhub.net.sg/x11html/preview/10152.html +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=150&discrim=251,11,3 +http://totalsports.aol.com/stats/bbo/int/20000624/tol.at.swb.game.html +http://excite.de/gesundheit/katalog/41575 +http://bbs.csie.ntu.edu.tw/txt/Emprisenovel/ebooks/other/hsiao_yi/jqhy/007.txt +http://www.memorialcup99.com/HockeyStLouisArchive/nov17_stl.html +http://www.letsmusic.com/directory/theme/genre_each/1,1137,Z-ㄴ-124-2-2,00.asp +http://rainforest.parentsplace.com/dialog/get/bedwetting/29/2.html?outline=-1 +http://www.volny.cz/j_medkova/p05.html +http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d2072/b77,c,4d,51,51,815,815,818,7d9,,51,7d9,818,, +http://collection.nlc-bnc.ca/100/200/301/ccmd-ccg/ccmd_report-e/rpt1e.pdf +http://cn.egroups.com/post/export-import-indonesia?act=forward&messageNum=595 +http://www.secinfo.com/$/SEC/Filing.asp?T=1zBgb.6t_9yc +http://www.realize.com/am81.htm,qt=4619dc8c=279e650e-c-16fba7d-1-0-0-0-- +http://amadeus.siba.fi/doc/php3-ldap/html/features.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.ada-fetchrow.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.array-pop.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.current.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.ftp-size.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.getmyinode.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.gmdate.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.hw-getusername.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.icap-list-alarms.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.ifx-free-char.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.imap-reopen.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.is-link.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.is-string.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.mcal-event-set-recur-monthly-wday.html +http://amadeus.siba.fi/doc/php3-ldap/html/function.mhash-get-block-size.html +http://wwws.br-online.de/geld/boerse/980420/110001.html +http://family.go.com/Categories/reviews/Features/family_2000_01/dony/dony0100craftapple/ +http://family.go.com/Categories/reviews/Features/family_2000_01/dony/dony0100craftcactus/ +http://family.go.com/Categories/reviews/Features/family_2000_01/dony/dony0100petvetticks/ +http://www.maastrek.de/maas/d49da6854db9e797f212/1/0/1 +http://astro1.chungnam.ac.kr/NetBBS/Bbs.dll/astromov/lst/qqadm/1/zka/B2-kB2Bl/qqo/004D +http://channel.cnnsi.com/basketball/college/2000/ncaa_tourney/west/news/2000/03/25/keady_ap/lg_keady_ap.html +http://incmagazine.com/articles/details/0,3532,AGD5_ART13806_CNT56_GDE30,00.html +http://incmagazine.com/research/details/0,3470,AGD5_CNT49_GDE30_RSC16754,00.html +http://gatekeeper.dec.com/pub/linux/lorax/i386/misc/src/anaconda/balkan/CVS/ +http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/OnlineCitiesSM/OnlineCitiesInteractiveCityGuides/bd720350329 +http://www.proviser.co.uk/regional/towns/alford/street_maps/alpha_b.html +http://www.fogdog.com/cedroID/ssd3040183255203/ +http://www.columbia.edu/~wl158/OCD.htm +http://www.irishnews.com/Archive2000/29052000/international.html +http://www.irishnews.com/Archive2000/29052000/sportinter.html +http://38scbshop.freeyellow.com/download.html +http://news.dinf.ne.jp/news/fj/rec/animation/msg01441.html +http://datastore.tucows.com/winnt/adnload/5372_28388.html +http://pages.infinit.net/limal/visage/chap17.htm +http://www.hotelboulevard.com/fr/paris/standard/htmlc258073cfbe254c1722c86e0aec5f5da/sessionLang/ANG/search.html +http://www.icopyright.com/1.1642.213678 +http://wiem.onet.pl/wiem/012aa2.html +http://www.secinfo.com/dRRsz.9e.htm +http://lily.nju.edu.cn/literature/cangshu/wx/wra/ysz/16.htm +http://home.swipnet.se/~w-15978/ +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.stanford.edu/dept/EIS/moral_responsibility.htm +http://smb.slac.stanford.edu/cgi-bin/nph-proxy.cgi/000/http/www.stanford.edu/dept/EIS/hardin_review.htm +http://www.uni-duesseldorf.de/ftp/pf/share/flex-2.5.2/man/man1/?S=A +http://mindit.netmind.com/proxy/http://www.ninds.nih.gov/health_and_medical/pubs/chronic_pain_htr.htm +http://mindit.netmind.com/proxy/http://www.smalltime.com/notvictims/cutting.html +http://www.peopledaily.co.jp/zdxw/7/19991231/19991231001085.html +http://pokemonothin.8m.com/cgi-bin/c/736/64/dXNlcmJhbm5lcg==/gn/4638/ +http://www.chaos.dk/sexriddle/s/e/x/u/y/n/d/ +http://www.bestinfo.net.cn/bsti_kjhy/kyys/bjkyys/arim/technical.html +http://www.leicos.de/webguides/fun_lifestyle/unterhaltung/43101.html +http://209.207.239.212/bkindex/c1047/f1423.html +http://cylis.lib.cycu.edu.tw/search*chi/tEncyclopaedia+of+mathematical+sciences+&%2359%3B+v.+65/tencyclopaedia+of+mathematical+sciences+v+++65/-17,-1,0,B/frameset&F=tencyclopaedia+of+mathematical+sciences+v+++48&1,1 +http://www.sanxia.net/beauty/Nanako/313.htm +http://www.sanxia.net/beauty/Nanako/323.htm +http://mirrortucows.technet.it/winme/adnload/138469_29790.html +http://www.fogdog.com/cedroID/ssd3040183321970/nav/stores/walking/ +http://www.fogdog.com/cedroID/ssd3040183321970/customer_service/employment.html +http://mirror.pku.edu.cn/www.berkeley.edu/ls.berkeley.edu/lscr/services/backups/UCBackup.html +http://retailer.gocollect.com/do/session/1912804/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/postcards/index.asp +http://www.uni-duesseldorf.de/ftp/pf/share/ddd-1.4d/man/man1/?M=A +http://www.uni-duesseldorf.de/ftp/pf/share/ddd-1.4d/man/man1/?S=A +http://javatest.a-net.nl/servlet/pedit.Main/http://www.zdnet.com/special/stories/wireless/0,10676,2557092-8,00.html +http://ftp.sunet.se/pub/os/FreeBSD/development/FreeBSD-CVS/ports/archivers/makeself/ +http://www.jamba.nl/KNet/_KNet-QYL8j1-2D4-pw4k/browse.nl/node.0/cde7f1uou +http://www.discoveromaha.com/shared/health/adam/ency/imagepage/1090.000233.html +http://home.dqt.com.cn/cgi-bin/push/setluntan?luntan=64 +http://sjsulib1.sjsu.edu:81/search/dbusiness+periodicals/-5,-1,1,B/frameset&dbusiness+vocational+guidance&2,,3 +http://www-d0.fnal.gov/d0dist/dist/releases/psim01.01.00/cft_tuple/VERSION +http://pub3.ezboard.com/fmcdonaldscollectorsclubauctions.subscribeUnregisteredToTopic?topicID=136.topic +http://shopping.lycos.co.kr/cgi-bin/LCWB.cgi/957424027/957522583/Catalog/1301/001 +http://www.cs.kuleuven.ac.be/~java/docs/jdk1.3/docs/api/java/sql/class-use/DriverPropertyInfo.html +http://www.buybuddy.com/sleuth/27/1/1060701/505427/ +http://web4.sportsline.com/u/football/nfl/players/splits/4451_split.htm +http://mirror.cc.utsunomiya-u.ac.jp/mirror/FreeBSD/ports/alpha/packages-5-current/japanese/?M=A +http://no.egroups.com/login.cgi?login_target=%2Fgroup%2Ftkd-full +http://www.bemi-immobilien.de/Ferien-IB/Startseite/Gemeinsam/MarketingStrategie/Gemeinsam/immolink/Gemeinsam/3d-service/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/MarketingStrategie/Strategie.htm +http://www.bemi-immobilien.de/Ferien-IB/Startseite/Gemeinsam/MarketingStrategie/Gemeinsam/immolink/Gemeinsam/3d-service/Startseite/www.ferien-immobilien.de/ferien-ib/startseite/Gemeinsam/versicherungen/gebaeude/deckungsumfang.htm +http://www.3wposter.com/czaja/czj2002.htm +http://pub19.ezboard.com/fallamericanbaseballleagueplayersneeded.showMessage?topicID=6.topic +http://ftp.uni-mannheim.de/info/OReilly/nutshell/practcpp/disk/doit/?N=D +http://www02.geocities.co.jp/HeartLand-Kaede/4970/index2.htm +http://www.selbstmachen.de/shops/pop/infotext/8008.htm +http://dennou-t.ms.u-tokyo.ac.jp/arch/cc-env/Linux/debian-jp/dists/unstable/contrib-jp/binary-alpha/doc/?D=A +http://genforum.genealogy.com/cgi-genforum/forums/flynn.cgi?1004 +http://www.iwon.com/home/movies/movies_filmography_page/0,13178,Marguerite+Hickey,00.html +http://cometweb01.comet.co.uk/do!tid=20&rtid=2&vsid=700&session=132028&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG5ubLZDXLZolLl3l5jbqLlci5XqVLkXsLkao4tloHbmlLoq5 +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus65300/eus65303/eus77824/eus541028/eus168664/ +http://user.chollian.net/~iipuni/pds1/?M=A +http://tucows.ciaoweb.it/winnt/adnload/73935_29937.html +http://home2.keyciti.com/x2001/ +http://www.amateurplatinum.com/teenagerclique/fagbodyshots/elbow-greaseac/plus-sizemen/butt-fuckpartner/actionextreme/hitting-itendurance.html +http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/Documentation/filesystems/vfs.txt?only_with_tag=LINUX-2_3_99_pre4 +http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.3-4/linux/Documentation/filesystems/vfs.txt?only_with_tag=LINUX-2_3_17 +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+18,0-0,0-3,0 +http://www.skaninforma.no/nord-troendelag/leksvik-h.htm +http://194.128.65.4/pa/cm199798/cmwib/wb971115/nil.htm +http://www.on.fuchu.or.jp/~oimatudo/englishmisomanzyu.htm +http://map.ipc.co.jp/asp/onmap/connect/g-2/a-719/ +http://cherokee1.edgate.com/goucheres/ed_current.html +http://www.online.kokusai.co.jp/Service/V0043594/wrd/G200/service/service.html +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=21,16,7 +http://binary.tucows.com/winnt/adnload/70807_30160.html +http://binary.tucows.com/winnt/adnload/1422_28846.html +http://genforum.genealogy.com/cgi-genforum/forums/theroux.cgi?69 +http://rex.skyline.net/navigate.cgi?news,ice,women,resources,living +http://umweb2.unitedmedia.com/creators/rugrats/archive/rugrats-20001015.html +http://retailer.gocollect.com/do/session/1912824/vsid/2089/tid/2089/cid/621609/mid/1540/rid/1520/chid/2083/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlmo5larLZqVLafpLmiXLvlmHolaLrZqLpl4/url/http://www.gocollect.com/product_display/products/product_lines.asp +http://retailer.gocollect.com/do/session/1912824/vsid/2089/tid/2089/cid/621609/mid/1540/rid/1520/chid/2083/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlmo5larLZqVLafpLmiXLvlmHolaLrZqLpl4/url/http://www.gocollect.com/clubhouse/suggestions.asp +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=146&discrim=146,7,19 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=146&discrim=146,7,231 +http://login.hq.cricinfo.org/link_to_database/ARCHIVE/1996-97/OD_TOURNEYS/SINWS/SINWS-MATCHES/SL_ZIM_SINWS_ODI5_03SEP1996_DAILY_MR.html +http://preview.egroups.com/group/God_Calling +http://www.fogdog.com/cedroID/ssd3040183340945/nav/products/outlet/1b/sunglasses_optics/ +http://www.fogdog.com/cedroID/ssd3040183340945/nav/products/outlet/1c/dc/ +http://www.fogdog.com/cedroID/ssd3040183340945/customer_service/contact_us.html +http://link.fastpartner.com/do/session/600424/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/itjobbank.php +http://link.fastpartner.com/do/session/600424/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/index.php +http://pub2.ezboard.com/fteamnexgenforumhelpnexgennexencodestudio.unsubscribeUnregisteredToTopic?topicID=29.topic +http://www02.geocities.co.jp/SiliconValley-PaloAlto/1763/event/ni2k/ni2k.htm +http://yp.gates96.com/7/89/60/35.html +http://yp.gates96.com/7/89/61/4.html +http://yp.gates96.com/7/89/61/38.html +http://yp.gates96.com/7/89/62/80.html +http://yp.gates96.com/7/89/63/8.html +http://yp.gates96.com/7/89/63/16.html +http://yp.gates96.com/7/89/65/10.html +http://yp.gates96.com/7/89/65/42.html +http://yp.gates96.com/7/89/65/54.html +http://yp.gates96.com/7/89/65/88.html +http://yp.gates96.com/7/89/65/98.html +http://yp.gates96.com/7/89/66/26.html +http://yp.gates96.com/7/89/66/55.html +http://yp.gates96.com/7/89/67/28.html +http://yp.gates96.com/7/89/68/67.html +http://yp.gates96.com/7/89/69/63.html +http://yp.gates96.com/7/89/69/73.html +http://www.mediko.de/news/alt.support.eating-disord/19944.html +http://www.mediko.de/news/alt.support.eating-disord/19975.html +http://www13.cplaza.ne.jp/musicnavi/i-mode/id/KICS113.html +http://home.beseen.com/community/alienpilot/AbductionTheory.html +http://www.hausbau-finder.de/festpreis/anbieter/A11/A11_05_eg.htm +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=10,15,200 +http://ftp.eecs.umich.edu/pub/NetBSD/packages/1.3.3/mac68k/kde/ +http://www.leg.wa.gov/pub/rcw%20-%20text/title_49/chapter_028/rcw_49_28_065.txt +http://fi.egroups.com/login.cgi?login_target=%2Fmessages%2Fdfbl%2F77 +http://ring.omp.ad.jp/pub/NetBSD/NetBSD-current/src/sys/arch/sgimips/dev/?D=A +http://retailer.gocollect.com/do/session/1912781/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/postcards/index.asp +http://providenet.tucows.com/win2k/adnload/136128_47180.html +http://providenet.tucows.com/win2k/adnload/38527_29571.html +http://no.egroups.com/dir/1/16/476/32069/32291/104313/293356 +http://www.playease.com/et/beauty/img/lingmuyamei/lmam043.htm +http://202.99.23.201/gb/special/node_484.htm +http://202.99.23.201/gb/special/node_518.htm +http://202.99.23.201/gb/special/node_531.htm +http://ring.jec.ad.jp/archives/NetBSD/NetBSD-current/pkgsrc/fonts/acroread-chsfont/README.html +http://www.gaiax.com/~dengeki/lineb.html?haru_da_pump +http://cafe2.daum.net/Cafe-bin/Bbs.cgi/naturalproductspds/qry/zka/B2-kB27p/qqatt/^ +http://cafe2.daum.net/Cafe-bin/Bbs.cgi/naturalproductspds/qry/zka/B2-kB23t/qqatt/^ +http://cafe2.daum.net/Cafe-bin/Bbs.cgi/naturalproductspds/qry/zka/B2-kB23r/qqatt/^ +http://my.egroups.com/group/uk-mac-dev +http://www.f20.parsimony.net/forum35990/archiv.htm +http://findmail.com/group/Costumers +http://variety.studiostore.com/browse/PEOPLE/b.FAVORITES%20PEOPLE/s.ZaC1r6Q6 +http://www.chinawolf.com/~warson/japan/chichuan/cat/jiangzuo/020.htm +http://www.branchen-vermittler.de/Branchen/Mecklenburg/Mecklenburg_Region_3/Neustrelitz/kopf_neustrelitz.html +http://www.xmission.com/(art,ftp,geek,music,music,caffiene,art,toys,dots,edge,misc,shopping,ftp,places,privacy,geek,cuseeme,apocalypse,people,stuffiuse,places,privacy,stuffiuse)/~bill/links.html +http://www.cs.helsinki.fi/linux/linux-kernel/Year-1999/1999-49/1283.html +http://www.ecotec.co.jp/view/arc/f/free/33/umcotk/zxlqox.html +http://www.ecotec.co.jp/view/arc/f/free/33/tgiotk/uftfwm.html +http://www.ecotec.co.jp/view/arc/f/free/33/purotk/qxxotk.html +http://www.ecotec.co.jp/view/arc/f/free/33/purotk/sewotk.html +http://www.ecotec.co.jp/view/arc/f/free/33/purotk/sjkfwm.html +http://www.ecotec.co.jp/view/arc/f/free/33/hazfwm/llhetk.html +http://www.ecotec.co.jp/view/arc/f/free/33/bvtctk/eptrik.html +http://www.ecotec.co.jp/view/arc/f/free/33/rvkptk/syurzz.html +http://library.cuhk.edu.hk/search*chi/a��頦��哨蕭嚙賢��鞈�嚙踝���+1934-/a{214b33}{213021}{214451}+1934/-5,-1,0,B/frameset&F=a{214b33}{213021}{213c63}&6,,7 +http://mitglied.tripod.de/~haubentaucher/bilder.htm +http://amc.hollywood.com/maltin/v/valleyofthekings-1954.htm +http://amc.hollywood.com/maltin/v/vannuysblvd-1979.htm +http://amc.hollywood.com/maltin/v/venicevenice-1992.htm +http://amc.hollywood.com/maltin/v/vicesquad-1931.htm +http://amc.hollywood.com/maltin/v/violette-1978.htm +http://amc.hollywood.com/maltin/v/voiceofthewhistler-1945.htm +http://amc.hollywood.com/maltin/v/vulturethe-1967.htm +http://members.tripod.co.jp/hatahata/hikoki/?D=A +http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-10-23/07/972255822718.txt +http://www.mapion.co.jp/custom/AOL/admi/23/23105/matsubaracho/5chome/index-43.html +http://search.chollian.net/cgi-bin/filter.cgi?cid=1109&g=11 +http://search.chollian.net/cgi-bin/filter.cgi?cid=1109&p=5 +http://www.linux.com/networking/network/new/website/applications/business/ +http://www.fogdog.com/cedroID/ssd3040183313598/nav/products/w_golf/1s/ball_retrievers/ +http://www.fogdog.com/cedroID/ssd3040183313598/nav/products/w_golf/1t/biographical_books/ +http://rammstein.sonicnet.com/artists/news/1090.jhtml +http://rammstein.sonicnet.com/allmusic/ai_bio.jhtml?ai_id=1090 +http://www.ycwb.com.cn/gb/2000/08/18/ycwb/gnxw/7.html +http://www.vorlesungen.uni-osnabrueck.de/informatik/c98/code/19/?D=A +http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-10-23/11/972270515716.txt +http://www.affiliate.hpstore.hp.co.uk/do/session/380869/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/entry1.asp +http://uk.biz.yahoo.com/mutual_funds/micropal/lf/fund/008776/properf.html +http://troy.lib.sfu.ca/search/aasociacion+argentina+de+ciencias+naturales/aasociacion+argentina+de+ciencias+naturales/-5,-1,0,E/frameset&F=aasociacion+argentina+de+ciencias+naturales&1,,0 +http://uk.dir.yahoo.com/Regional/U_S__States/Virginia/Metropolitan_Areas/Charlottesville_Metro/Travel_and_Transportation/Accommodation/Caravan_Parks_and_Camp_Sites/ +http://uk.dir.yahoo.com/Regional/U_S__States/Virginia/Metropolitan_Areas/Charlottesville_Metro/Travel_and_Transportation/Accommodation/Hotels/ +http://library.cwu.edu/search/cQA76.73.A35+T75/cqa+++76.73+a35+t75/-5,-1,0,B/marc&F=cqa+++76.73+a8+j33+1985&1,1, +http://www.tages-anzeiger.ch/sport/nagano/0902/olymp_art4.htm +http://finance.sina.com.cn/globe/globe/2000-03-16/23725.html +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,3-9,0+0,1-0,3 +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,3-9,0+0,1-9,3 +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,3-9,0+0,1-19,0 +http://temps-libre.promovacances.net/D02/BH/BDANE/voyagealacarte.htm +http://sunsite.org.uk/public/computing/networks/internet/ietf/98aug/imapext-attendees-98aug.txt +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=124&discrim=221,178 +http://cpan.nettuno.it/authors/Ilya_Zakharevich/modules/FreezeThaw-0.41.readme +http://cpan.nettuno.it/authors/Ilya_Zakharevich/modules/Math-Pari-2.001700.readme +http://ricoh.co.jp/SHOGI/emate/tanigawa/tume0069a.html +http://troy.lib.sfu.ca/search/dlatin+america+periodicals/dlatin+america+periodicals/-5,-1,0,B/marc&F=dlatin+america+pest+control+industry&1,1, +http://moviestore.zap2it.com/browse/MOVIES/COLLECTI/s.w2bwHPkr +http://moviestore.zap2it.com/browse/MOVIES/BUNDLE/s.w2bwHPkr +http://moviestore.zap2it.com/browse/MOVIES/BOWL/s.w2bwHPkr +http://moviestore.zap2it.com/browse/MOVIES/JEWELRY/s.w2bwHPkr +http://moviestore.zap2it.com/browse/MOVIES/COMIC/s.w2bwHPkr +http://www9.hmv.co.uk:5555/do/session/1347801/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/Top_Navigation_Bar/top_banner.html +http://www3.adobe.com/type/browser/F/P_103/F_FRAK-70005000.html +http://ftp.netc.pt/pub/idgames/levels/doom2/deathmatch/j-l/kewl.txt +http://ftp.netc.pt/pub/idgames/levels/doom2/deathmatch/j-l/ledges-z.txt +http://park.org:8888/Japan/CSK/hyakki/zukan/turezure/ue/c_tirizuka.html +http://pub4.ezboard.com/fscarletstreetfilmmusic.unsubscribeUnregisteredToTopic?topicID=54.topic +http://tucows.niagara.com/win2k/adnload/37364_29149.html +http://wap.jamba.de/KNet/_KNet-JGG8j1-eGd-13cre/showInfo-special1.de/node.0/cde7f1uou +http://www.personalmd.com/news/n0706062122.shtml +http://ds.dial.pipex.com/tmc/ConfPresentations/s2000/NetworkingJ/msconfig.htm +http://calcul.si.uji.es/Programes/SAS/proc/z0325264.htm +http://www.kaos.dk/sexriddle/x/m/k/i/i/ +http://ring.toyama-ix.net/archives/lang/perl/CPAN/clpa/1998-08/?N=D +http://ring.toyama-ix.net/archives/lang/perl/CPAN/clpa/1998-08/?S=A +http://www.spiral.at/Katalog/Artikel/0879070/ +http://homepage1.nifty.com/nao~nao/pages/profile.html +http://www.ferien-immobilien.de/friesland/verkauf/Gemeinsam/Inserieren/Allgemeine-IB/3d-service/Allgemeine-IB/Startseite/ +http://www.ferien-immobilien.de/friesland/verkauf/Gemeinsam/Inserieren/Allgemeine-IB/3d-service/Gemeinsam/erreichenPartner/email3d.htm +http://www.thestateofcolorado.com/m1jerepair.html +http://www.legis.state.pa.us/WU01/LI/BI/TI/1989/0/MNTENNIS.HTM +http://www.legis.state.pa.us/WU01/LI/BI/TI/1989/0/MNTRASH.HTM +http://www.shop4magazines.com/pg004752.htm +http://www.shop4magazines.com/pg005070.htm +http://www.shop4magazines.com/pg005084.htm +http://fi.egroups.com/login.cgi?login_target=%2Fmessage%2Fsocalscan%2F5293 +http://www.incestpornstories.com/hot-hardcore-fuckingbanging/bootsfeet-/hitting-itsmacking/{hardcorelink} +http://www.columbia.edu/~mkn12/Nominees.html +http://www.generation-formation.fr/pdetail.htm---o21zAo06Rxo0Ol9A074fo6s0Md6jIHeNHhIeOkn2ApvFFo6s5dfexiWo2W81N3OsPeaR2VeuzlEdRsR3djaPfdNjfco41qrfP6sWd6wuCoz4ZteOgKHekLVSePl8vNhiWhAhcgNAPfVbdsNhJl.htm +http://tiscover.at/1Root/Kontinent/6/Staat/7/Bundesland/20/Ort/212/Sonstige_Sportstaette/276591/Bericht/berw...1.html +http://fi.egroups.com/message/meterreader/207?source=1 +http://polygraph.ircache.net:8181/services/design/http_-2www.arthritis.org/http_-2www.alameda-vcf.org/http_-2www.microsoft.com/ie/ie.htm +http://www.fortunecity.com/lavender/deathrace/251/billy.html +http://ftpsearch.belnet.be/packages/CPAN/modules/by-module/AppleII/?N=D +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=7,34,29,16,25 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=21,34,29,16,25 +http://www.ftp.uni-erlangen.de/pub/unix/BSD/FreeBSD/FreeBSD-current/ports/irc/tirc/ +http://retailer.gocollect.com/do/session/1912840/vsid/1696/tid/1696/cid/604361/mid/1540/rid/1420/chid/1725/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlmo5larLZqVLafpLmiXLvlmHolaLrZqLpl4/url/http://www.gocollect.com/company_info/about.asp +http://retailer.gocollect.com/do/session/1912840/vsid/1696/tid/1696/cid/604361/mid/1540/rid/1420/chid/1725/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlmo5larLZqVLafpLmiXLvlmHolaLrZqLpl4/url/http://www.gocollect.com/company_info/terms_and_conditions.asp +http://businessrecorder.com/story/S0024/S2401/S2401113.htm +http://arabia.com/article/0,1690,Sports|20732,00.html +http://www.worldmedicus.com/servlet/Controller/$7006041629a50000.sj_viewa/ +http://myhome.naver.com/chocobini/company.html +http://builder.hw.net/frmMessageFront/1,1079,'1~21~0~8~1~2348~9590',00.html +http://pub1.ezboard.com/fcrossstitchcorner504212000shepherdsbushretreat.showAddReplyScreenFromWeb?topicID=48.topic&index=5 +http://www.parisnights.de/fanfiction/archive/authors/andrews/stories/bright.htm +http://198.103.152.100/search*frc/cCA1+MPR+NS51+98Y25/cca1+mpr+ns51+98y25/7,-1,0,E/2browse +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus51605/eus147927/eus269761/eus269920/eus918452/ +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus51605/eus147927/eus269761/eus269920/eus918493/ +http://www.computing.net/cgi-bin/report.pl/windows95/wwwboard/forum/3119.html|21 +http://www.kiarchive.ru:8093/pub/misc/books/Camelot/Vasilyev/Forgotten_Road/ +http://yp.gates96.com/4/9/50/30.html +http://yp.gates96.com/4/9/51/1.html +http://yp.gates96.com/4/9/51/88.html +http://yp.gates96.com/4/9/51/92.html +http://yp.gates96.com/4/9/52/3.html +http://yp.gates96.com/4/9/52/53.html +http://yp.gates96.com/4/9/52/67.html +http://yp.gates96.com/4/9/53/25.html +http://yp.gates96.com/4/9/53/50.html +http://yp.gates96.com/4/9/53/96.html +http://yp.gates96.com/4/9/54/40.html +http://yp.gates96.com/4/9/54/57.html +http://yp.gates96.com/4/9/54/77.html +http://yp.gates96.com/4/9/55/57.html +http://yp.gates96.com/4/9/55/71.html +http://yp.gates96.com/4/9/56/1.html +http://yp.gates96.com/4/9/56/98.html +http://yp.gates96.com/4/9/57/6.html +http://yp.gates96.com/4/9/57/90.html +http://yp.gates96.com/4/9/58/91.html +http://yp.gates96.com/4/9/58/96.html +http://yp.gates96.com/4/9/59/29.html +http://yp.gates96.com/4/9/59/33.html +http://yp.gates96.com/4/9/59/84.html +http://yp.gates96.com/4/9/59/97.html +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1997/5/0/900308/ +http://www2.odn.ne.jp/~cao20970/affair/oh/ha-342 +http://www2.odn.ne.jp/~cao20970/affair/oh/ha-346 +http://wap.jamba.de/KNet/_KNet-lvH8j1-nGd-13d1j/browse.de/node.0/cdzqggtyb +http://www.danielwebster.org//hallofusa/thestampact/HENDRICKFISHER.COM//thestampact/ +http://news.cn.tom.com/maya/cnnav/01/item/2000_09/309490.shtml +http://polygraph.ircache.net:8181/services/design/http_-2www.paducahrotary.org/pbcmap.htm +http://polygraph.ircache.net:8181/services/design/http_-2www.paducahrotary.org/mainpage.htm +http://www.debian.org.cn/Bugs/db/23/23547.html +http://www.debian.org.cn/Bugs/db/54/54172.html +http://www.adetti.iscte.pt/ADETTI/Security/HowTo/Java/jdk1.2.1/docs/guide/beans/spec/beancontext.fm7.html +http://www.users.qwest.net/~campputz/page413.htm +http://flybird.soyou.edu.cn/item/2000-07-31/164671.html +http://www.cognigen.net/corporate/trainers.cgi?full-timer +http://www.babyheirlooms.com/catalog/htmlos.cat/041143.1.1156359481 +http://ramdam.com/art/k/katerine.htm +http://ramdam.com/art/k/krapulax.htm +http://aleph.tau.ac.il:4501/ALEPH/eng/ATA/AAM/AAM/SET-MAIL///1249009 +http://online.linux.tucows.com/conhtml/adnload/8973_2294.html +http://www.arrakis.es/~lady_cel/frcontenf.htm +http://online.linux.tucows.com/conhtml/adnload/39034_1349.html +http://online.linux.tucows.com/conhtml/adnload/51651_2248.html +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=23,0+14,0-13,0-13,0 +http://www.ferien-immobilien.de/Westerwald/verkauf/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/Gemeinsam/Inserieren/Private-IB/Gemeinsam/suche.htm +http://www.linux.com/networking/network/it/alternative/developers/Apple/ +http://www.sanxia.net/beauty/Nanako/418.htm +http://www-usa8.cricket.org/link_to_database/ARCHIVE/1999-2000/OTHERS+ICC/NORTHANTS_IN_WI/ARTICLES/ +http://gds.cc.va.us:8888/Mcn%3dMELISSA%20BACK,%20ou%3dSV.CC.VA.US,%20ou%3dFaculty%20%26%20Staff,%20o%3dvccs,%20c%3dUS +http://www.allgemeine-immobilien-boerse.de/nordrhein-Westfalen/luedinghausen/Verkauf/Ferien-IB/Startseite/Gemeinsam/erreichenPartner/Versteigerungen-IB/Startseite/IIM-Teil/Startseite/froben.htm +http://198.103.152.100/search*frc/dIndustrial+relations+--+Germany+(West)+--+History/dindustrial+relations+germany+west+history/-5,-1,0,B/frameset&F=dindustrial+relations+germany+dictionaries&1,,0 +http://secure.danysoft.com/asp/dany.tienda/892496425/Catalog +http://yp.gates96.com/13/57/90/23.html +http://yp.gates96.com/13/57/90/91.html +http://yp.gates96.com/13/57/91/68.html +http://yp.gates96.com/13/57/92/22.html +http://yp.gates96.com/13/57/92/49.html +http://yp.gates96.com/13/57/92/73.html +http://yp.gates96.com/13/57/93/75.html +http://yp.gates96.com/13/57/94/16.html +http://yp.gates96.com/13/57/94/62.html +http://yp.gates96.com/13/57/94/99.html +http://yp.gates96.com/13/57/95/19.html +http://yp.gates96.com/13/57/95/34.html +http://yp.gates96.com/13/57/95/84.html +http://yp.gates96.com/13/57/96/22.html +http://yp.gates96.com/13/57/96/24.html +http://yp.gates96.com/13/57/96/52.html +http://yp.gates96.com/13/57/96/70.html +http://yp.gates96.com/13/57/97/39.html +http://yp.gates96.com/13/57/97/55.html +http://yp.gates96.com/13/57/98/4.html +http://yp.gates96.com/13/57/98/41.html +http://yp.gates96.com/13/57/98/58.html +http://yp.gates96.com/13/57/98/98.html +http://yp.gates96.com/13/57/98/99.html +http://yp.gates96.com/13/57/99/79.html +http://carriage.de/Schoner/Info-d/history/literature/literature/ +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/lit/computers/misc/unitest/misc/computers/programs/simple/simple.html +http://kwic.tucows.com/partners/flyswat/get_acx.html +http://sp201.unige.ch:49213/cxxdoc/ioc/concepts/c2g2rcsm.htm +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=0,2-0,1-21,0+9,1 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=10,2,183 +http://firstweb.tucows.com/win2k/adnload/58783_28760.html +http://www.boerseninfos.de/dynamic/ak/mk/news/719350-20000830-104827.html +http://baseball.mainichi.co.jp/life/family/syuppan/wakaru/wakaru-j/10/01/01.html +http://helios.nlib.ee/search*est/dsÃÄ©jalised+blokid/dsw~ajalised+blokid/-5,-1,0,B/exact&F=dsw~ajalised+konfliktid&1,58/limit +http://helios.nlib.ee/search*est/dsÃÄ©jalised+blokid/dsw~ajalised+blokid/-5,-1,0,B/frameset&F=dsw~ajalised+konfliktid&11,,58 +http://lexicon.linux.tucows.com/conhtml/adnload/8642_2088.html +http://ua.php.net/manual/es/function.pg-fieldisnull.php +http://www.babyheirlooms.com/catalog/htmlos.cat/041132.1.4352706945 +http://www.civila.com/guitar/chat/desenredada/juegos/ +http://sunsite.org.uk/public/pub/packages/info-mac/pilot/?N=D +http://www.aelita.net/products/products/support/news/Reg/Subscribe/company/contact/default.htm +http://cn.egroups.com/message/newsclips/295 +http://www.jornada.unam.mx/2000/sep00/000922/oriente-y.htm +http://members.tripod.co.jp/mosokke/dubair01ghe.html +http://202.99.23.245/zdxw/21/20000217/200002172112.html +http://link.fastpartner.com/do/session/600412/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/speednames.php +http://link.fastpartner.com/do/session/600412/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/nordicliving.php +http://link.fastpartner.com/do/session/600412/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/local/redirect.php +http://iant.subportal.com/sn/Utilities/System_Maintenance_and_Repair_Utilities/2128.html +http://polygraph.ircache.net:8181/client/http_-2www.scubaring.com/http_-2www.aaainvestments.com/http_-2www.primenet.com/~stmmoon/stmbik.html +http://itcareers.careercast.com/texis/it/itjs/+wwwBme89D86qxwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDanDtoDnnGaMw55wqr15nBB5aoDhdGMwBodDa5nq1GoBOaDnBidGAapGdBdqdc5aGn31oGnmanLpnGonDqnaMFqhTfR20DzmehrwwwpBme26D86eSqwww5rmePdwwwBrmeZpwww/morelike.html +http://itcareers.careercast.com/texis/it/itjs/+awwBme3AT+6ezqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDanDtoDnnGaMw55wqr15nBB5aoDhdGMwBodDa5nq1GoBOaDnBidGAapGdBdqdc5aGn31oGnmanLpnGonDqnaMFqhTfR20DzmehrwwwpBme26D86eSqwww5rmeEdwwwBrmeZpwww/jobpage.html +http://itcareers.careercast.com/texis/it/itjs/+vwwBme26D86eSqwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewGtmoBGnaqdGpdGwBodDanDtoDnnGaMw55wqr15nBB5aoDhdGMwBodDa5nq1GoBOaDnBidGAapGdBdqdc5aGn31oGnmanLpnGonDqnaMFqhTfR20DzmehrwwwpBme26D86eSqwwwGzmwwww5rmeEdwwwBrmeZpwww/morelike.html +http://www.starcities.com/usa/ca/carlsbad/ +http://www.3w-geschichten.de/PlumptreGeorge/PlumptreGeorge1857938461.htm +http://residence.educities.edu.tw/goyen/ +http://polygraph.ircache.net:8181/http_-2www.whowhere.com/http_-2www.primenet.com/~mmfact/http_-2www.microsoft.com/ie/download/ +http://polygraph.ircache.net:8181/http_-2www.whowhere.com/http_-2www.primenet.com/~mmfact/http_-2www.infohwy.com/odframes.html +http://www.linux.com/networking/network/management/industry/internet/services/ +http://cn.egroups.com/message/ruosulista/1176 +http://ftp.jp.debian.org/debian/dists/unstable/main/binary-i386/tex/?M=A +http://de.excite.de/bildung/katalog/17722 +http://de.excite.de/bildung/katalog/17893 +http://de.excite.de/bildung/katalog/17879 +http://www.emerchandise.com/browse/BUFFYTHEVAMP/PIN/b.TV%20BUFFYTHEVAMP/s.Xpiu5LCZ +http://variety.studiostore.com/browse/VARIETY/CAMERA/s.dmZspziz +http://carriage.de/Schoner/Sammlungen/models/info-e/Info-d/ +http://www.gazeta.com/Iso/Plus/Kraj/Prezyden/Ak/700kwa.html +http://www.linux.com/networking/network/networking/developers/operating_system/Debian/ +http://online.linux.tucows.com/conhtml/adnload/8808_32695.html +http://149.221.91.10/news/lokales/wermelskirchen/ +http://opac.lib.rpi.edu/search/avirgin+vision+limited/7,-1,0,B/frameset&avirginia+cooperative+fisheries+research+unit&1,1 +http://www.emerchandise.com/browse/DISNEY-FAM/ACTIONFI/b.FAVORITES%20KIDSSTUFF%20DISNEY-FAM/s.erm2bF5K +http://polit.kulichki.net/moshkow/PXESY/GORIN/ +http://polit.kulichki.net/moshkow/COPYRIGHT/stolyarov.txt +http://www.science.uva.nl/pub/NetBSD/NetBSD-current/pkgsrc/textproc/rman/pkg/DESCR +http://cgi.www.4tourism.com/uk/wareham65426.html +http://cgi.www.4tourism.com/uk/wareham22477.html +http://www.ccnet.com/affif/_themes/sumipntg/_vti_cnf/?M=A +http://web.tin.it/regionesardegna/ital/lavpubb/bandi_contratti/schema5_1q.htm +http://ring.htcn.ne.jp/archives/text/CTAN/macros/latex/contrib/other/apa/ +http://ftpsearch.belnet.be/packages/CPAN/modules/by-module/Callback/Callback-1.02.readme +http://iant.subportal.com/sn/Utilities/Misc__Utilities/12800.html +http://yp.gates96.com/2/51/0/86.html +http://yp.gates96.com/2/51/1/72.html +http://yp.gates96.com/2/51/2/10.html +http://yp.gates96.com/2/51/3/7.html +http://yp.gates96.com/2/51/3/50.html +http://yp.gates96.com/2/51/4/90.html +http://yp.gates96.com/2/51/5/6.html +http://yp.gates96.com/2/51/5/42.html +http://yp.gates96.com/2/51/5/50.html +http://yp.gates96.com/2/51/6/49.html +http://yp.gates96.com/2/51/8/12.html +http://yp.gates96.com/2/51/8/50.html +http://yp.gates96.com/2/51/9/82.html +http://yp.gates96.com/2/51/9/94.html +http://archive.soccerage.com/s/fr/09/37602.html +http://archive.soccerage.com/s/fr/09/39203.html +http://ftp.ring.gr.jp/archives/NetBSD/NetBSD-1.4.1/pmax/binary/security/ +http://www.yorosiku.net:8080/-_-http://www.us-japan.org/otr/ +http://support.dell.com/docs/storage/dlt1/ug/sp/jumpers.htm +http://moviestore.zap2it.com/browse/MOVIES/MOUSEPAD/s.uiIfdEiW +http://moviestore.zap2it.com/browse/MOVIES/STANDUP/s.uiIfdEiW +http://focusin.ads.targetnet.com/ad/id=animeart&opt=cin&cv=210&uid=972942857 +http://www.emerchandise.com/browse/SATNIGHTLIVE/SWEATSHI/s.pJ2FFfba +http://www.realize.com/p5dee81.htm,qt=e784fe2f=2a38a234-e-1ade986-0-0-0-3-- +http://support.tandy.com/support_audio/doc30/30780.htm +http://sun1.rrzn-user.uni-hannover.de/jgaertner/matlab/help/techdoc/umg/chlabel2.html +http://sun1.rrzn-user.uni-hannover.de/jgaertner/matlab/help/techdoc/umg/chprin12.html +http://www.es.co.nz/~rotary.home.html +http://www.excelsior.com.mx/9802/980217/nac18.html +http://dante.bdp.it/cgi-bin/poseidon_v2.0/reflect/poseidon/disc/biblioteca1/1316779952/prevarticle +http://dennou-t.ms.u-tokyo.ac.jp/arch/cc-env/Linux/debian-jp/dists/stable/non-free-jp/binary-alpha/net/?D=A +http://guest/forestpatholog/diseases/annosus.html +http://guest/forestpatholog/diseases/rot.html +http://no.egroups.com/message/readbygrade3/2029 +http://www.cybercd.de/artist/Fabri,+Stafke.htm +http://www.jamba.de/KNet/_KNet-zQG8j1-hGd-13cwi/admLogin.de/node.0/cenv0b09a +http://www.digitaldrucke.de/(aktuell,computer,marktplatz,sense,tausch)/_fort/html/themen/computer/computer.htm +http://ring.tains.tohoku.ac.jp/pub/linux/debian/debian-jp/dists/potato/contrib-jp/source/news/?S=A +http://strategis.ic.gc.ca/sc_indps/recboats/frndoc/3g.html +http://ftp.eq.uc.pt/software/unix/Linux/redhat/redhat-6.2/i386/doc/gsg/figs/rpmlite/?M=A +http://www.judds-resort.com/judds/Lake-Winni-pike-lodge/upload/upload/photo/fallphoto/boat/12.html +http://ftp.eecs.umich.edu/.7/NetBSD/NetBSD-current/src/usr.sbin/cnwctl/ +http://ftp.eecs.umich.edu/.7/NetBSD/NetBSD-current/src/usr.sbin/mailwrapper/ +http://ftp.eecs.umich.edu/.7/NetBSD/NetBSD-current/src/usr.sbin/traceroute6/ +http://ftp.eecs.umich.edu/.7/NetBSD/NetBSD-current/src/usr.sbin/yppoll/ +http://pelit.saunalahti.fi/.3/linuxberg/conhtml/preview/8785.html +http://www.asahi-net.or.jp/~rz3n-snd/kitakan/kamiyosida.html +http://www.chaos.dk/sexriddle/s/e/x/q/x/k/l/ +http://www.chaos.dk/sexriddle/s/e/x/q/x/k/y/ +http://ring.jec.ad.jp/archives/text/CTAN/dviware/umddvi/libcompat/?S=A +http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/OCtIhwK0_lecIJU9yN87J4DTFWqXdztVO8nfP1zxdwq79fkod_IhHN3-iHbCrlaXZ5ATMMc_Gb5Zt_RdtVOloKJ1Z7DGqz2vE9vOjESyOqryETO-lNa0NWtCoTJH_QGCfq7ss5VGa1MO3iLryKZ2gIVI_Lonfx_bC9m7 +http://seniorfriendfinder.com/cgi-bin/w3com/pws/ffsenior/D-tI2p4N__5TTgffRqVzdrKNYFZc3jj2Oatw29gt_YiNBPXUlYZaTA2ndP2CrwlrdiMS8YzPKxDR7Vp4ZBqD3d5o3MwYrYIxk31YsVtP3yFS2bLdZcBGLKdyNUc9yYgvGsGMXAMcEAUJPjtRqUVzDpuhHzS6V_U76I6G +http://my.egroups.com/subscribe/enemapix +http://yp.gates96.com/0/23/40/60.html +http://yp.gates96.com/0/23/40/82.html +http://yp.gates96.com/0/23/41/67.html +http://yp.gates96.com/0/23/43/71.html +http://yp.gates96.com/0/23/43/75.html +http://yp.gates96.com/0/23/44/64.html +http://yp.gates96.com/0/23/44/73.html +http://yp.gates96.com/0/23/44/84.html +http://yp.gates96.com/0/23/45/19.html +http://yp.gates96.com/0/23/46/9.html +http://yp.gates96.com/0/23/46/26.html +http://yp.gates96.com/0/23/46/37.html +http://yp.gates96.com/0/23/46/92.html +http://yp.gates96.com/0/23/47/39.html +http://yp.gates96.com/0/23/47/52.html +http://yp.gates96.com/0/23/48/52.html +http://yp.gates96.com/0/23/49/12.html +http://yp.gates96.com/0/23/49/90.html +http://retailer.gocollect.com/do/session/1912812/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/help/index.asp +http://retailer.gocollect.com/do/session/1912812/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/sports/index.asp +http://203.93.50.148:2222/*0110http://www.snweb.com/gb/people_daily/2000/10/20/i1020004.htm +http://cn.egroups.com/messages/romtrade/5024 +http://members.tripod.co.jp/medo/_private/ +http://dbc.copystar.com.tw/DelphiChat/200001/msg0325.htm +http://tucows.pi.be/winnt/diskcnt_license.html +http://millennium.fortunecity.com/ruthven/144/5041.htm +http://news.pchome.com.tw/ttv/finance/20000616/ +http://library.bangor.ac.uk/search/dEcology+--+Poland+--+Periodicals/decology+poland+periodicals/-17,-1,0,B/frameset&F=decology+north+america+congresses&1,1 +http://www.could.be/travel/north_america/united_states/lodge_2.htm +http://genforum.genealogy.com/cgi-bin/print.cgi?huntington::195.html +http://www.bemi-immobilien.de/Ferien-IB/Startseite/Gemeinsam/immolink/Gemeinsam/MarketingStrategie/Gemeinsam/erreichenPartner/Gemeinsam/3d-service/Top-Darlehens-Konditionen/anforderungsformular.htm +http://members.tripod.co.jp/snowmen/?D=A +http://ftp.unicamp.br/pub/FAQ/sf/alt_history/part6 +http://www.affiliate.hpstore.hp.co.uk/do/session/380884/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/REGISTRATION/entry.asp +http://grid9.linux.tucows.com/x11html/adnload/9444_3744.html +http://www.linux.com/networking/network/communications/tools/web/support/ +http://www.linux.com/networking/network/communications/tools/web/alternative/ +http://cometweb01.comet.co.uk/do!tid=20&rtid=1&vsid=700&session=132030&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplGGolLarZLq4fLpmiLXv-KmooLckYLoznGmpq0qsc0mojLbkYLozvGotc0ZdoLckYLozvGsmv0qmc0jXfLkVZLdocLkYoLzcj1XfkLVZXLqkXLjbzKcob5qroLkVrLoizKlZd5fjYHfklKkZlLjjbLoZbLpl51ubZLDXZLollK3ljLbqlKjXfLkkaHotl4obmLloqL +http://yp.gates96.com/14/77/20/1.html +http://yp.gates96.com/14/77/20/3.html +http://yp.gates96.com/14/77/20/32.html +http://yp.gates96.com/14/77/20/55.html +http://yp.gates96.com/14/77/21/7.html +http://yp.gates96.com/14/77/22/20.html +http://yp.gates96.com/14/77/22/26.html +http://yp.gates96.com/14/77/22/50.html +http://yp.gates96.com/14/77/23/63.html +http://yp.gates96.com/14/77/23/96.html +http://yp.gates96.com/14/77/25/53.html +http://yp.gates96.com/14/77/26/8.html +http://yp.gates96.com/14/77/26/32.html +http://yp.gates96.com/14/77/27/0.html +http://yp.gates96.com/14/77/27/55.html +http://yp.gates96.com/14/77/27/78.html +http://yp.gates96.com/14/77/28/8.html +http://yp.gates96.com/14/77/28/53.html +http://yp.gates96.com/14/77/28/57.html +http://yp.gates96.com/14/77/28/99.html +http://yp.gates96.com/14/77/29/96.html +http://mirror.nucba.ac.jp/mirror/FreeBSD/FreeBSD-stable/ports/cad/xcircuit/files/?D=A +http://pub3.ezboard.com/BBSForum.showForumSearch?boardName=jenxforum&forumName=jenxforumfrm0 +http://genforum.genealogy.com/cgi-genforum/forums/hi.cgi?415 +http://elib.zib.de/pub/opt-net/msc/msc-90-xx/90c15/v93w20n4 +http://biblio.cesga.es:81/search*gag/aDittrich,+Stefan/adittrich+stefan/-5,-1,0,E/frameset&F=adittman+richard+h+coaut&1,,0 +http://biblio.cesga.es:81/search*gag/aDittrich,+Stefan/adittrich+stefan/-5,-1,0,E/frameset&F=adittmar+jorge&1,1 +http://biblio.cesga.es:81/search*gag/aDittrich,+Stefan/adittrich+stefan/-5,-1,0,E/exact&F=adivis+jan&1,4 +http://www.doc.ic.ac.uk/~gwsb98/bucket/Wine-20001026/etc/?D=A +http://news.fm365.com/xinwen/guoji/20000531/72641.htm +http://www.newquestcity.com/templates/eventout.cfm?nqc=TN0730 +http://www.rhena.de/kempinsk1.htm +http://www.jamba.de/KNet/_KNet-tkL8j1-PGd-13dss/showInfo-wir.de/node.0/cenvd8eze +http://www.jamba.de/KNet/_KNet-tkL8j1-PGd-13dsv/browse.de/node.0/ceo0fdeye +http://cpan.nitco.com/modules/by-module/String/BLCKSMTH/?N=D +http://www.digitaldrucke.de/(hilfe,nuernberg)/_fort/html/themen/computer/soft/links/intuit.htm +http://www.jeunesdocteurs.com/fplr/56/08.html +http://simf1.tripod.com/Rio.htm +http://www.mirror.kiev.ua:8083/paper/1998/17/1251/people.htm +http://web2.sportsline.com/u/baseball/mlb/2000PO_stats/tpSTLw.htm +http://www15.freeweb.ne.jp/art/charukun/yusuke.htm +http://map.ipc.co.jp/asp/onmap/r/new/g-24/f-905972/ +http://www.affiliate.hpstore.hp.co.uk/do/session/380882/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/REGISTRATION/entry.asp +http://www.webcrawler.com/education/arts_and_humanities/visual_arts/art_history/c19th/arts_and_crafts/mackintosh_cr/structures/ +http://polygraph.ircache.net:8181/wwwboard/http_-2www.microsoft.com/msoffice/frontpage/http_-2www.linkstar.com/home/partners/marketlink-international-inc +http://polygraph.ircache.net:8181/wwwboard/http_-2www.microsoft.com/msoffice/frontpage/ECA2.htm +http://polygraph.ircache.net:8181/wwwboard/http_-2www.microsoft.com/msoffice/frontpage/http_-2www.intac.com/~dversch/catalog.html +http://excite.de.netscape.com/kunst/katalog/24315 +http://www.outpersonals.com/cgi-bin/w3com/pws/out/KhhIzVYqtXJlJzGPqrqzbJbUw7ERB8P7PSm9mTaj3BkJF6tLfllGlz2yKgLweoM1LPKLdHjjKv8zfb9tb2yojpTmzt6264ZE3V9vWzxY1mZnhDOG1vlwPrnwH5OCJM6C98fbjgZX66II +http://mirror.nucba.ac.jp/mirror/Netscape/netscape6/french/6_PR2/windows/win32/?S=A +http://www.linux.com/networking/server/install/howto/red_hat/package/ +http://www.nissan.co.jp/RENAULT-DEALERS/PASSPORT/view.cgi/proof/972959618-- +http://brain.brent.gov.uk/WebPages.nsf/vWebAllPagesByKey!OpenView&Start=97&Count=60&Expand=152 +http://i-mode.kakiko.com/deaitomo/mag/magurox/1405b.html +http://www.ring.gr.jp/pub/NetBSD/arch/amiga/snapshot/20000115-1.4P/binary/security/ +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=18,0+20,0-17,0-0,0 +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/www/anoncvs.html?annotate=1.2&sortby=rev +http://ftp.jp.debian.org/debian/dists/woody/non-free/binary-sh/hamradio/?M=A +http://netscape.complete-skier.com/resorts/survey/submit.asp?ResortID=772 +http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=9,17,2,16,5,14 +http://www.egroups.com/messages/zingiber/238 +http://www.umr.edu/~rhall/class/sap/sap8/demo.html +http://209.207.239.212/bkindex/c1043/f1202.html +http://se.egroups.com/message/ackmud/104 +http://school.educities.org/card/cug55.html +http://school.educities.org/card/wgl.html +http://school.educities.org/card/a77125.html +http://school.educities.org/card/apple6128.html +http://school.educities.org/card/c369852.html +http://school.educities.org/card/cges4216.html +http://school.educities.org/card/cges6307.html +http://school.educities.org/card/eaa.html +http://school.educities.org/card/f129235832.html +http://school.educities.org/card/g1546.html +http://school.educities.org/card/h223422022.html +http://school.educities.org/card/lemon6112.html +http://school.educities.org/card/st6408.html +http://www.dulux.co.uk/UKRETAIL:1243142410:DFinity.1QJiP4jRACol +http://www.iagora.com/pages/bbaddpost/::bb_id=148:mid=43302:thread_id=8185:parent_id=43302::lang=de +http://www.iagora.com/pages/bbaddpost/::bb_id=148:mid=43431:thread_id=8185:parent_id=43431::lang=de +http://www.egroups.com/message/intelligent_humor/875 +http://club.telepolis.com/klvinbc/fotosb.htm +http://plat.debian.or.jp/debian/dists/woody/non-free/binary-mips/editors/?D=A +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=207&discrim=3,12,63 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=207&discrim=3,12,237 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=207&discrim=3,12,120 +http://www.jamba.de/KNet/_KNet-_tJ8j1-AGd-13ddq/browse.de/node.0/cdel3j591 +http://immihelpdownloads.subportal.com/sn/Utilities/System_Analysis_Utilities/2980.html +http://dwp.bigplanet.com/crestinginc/discussion/edit.nhtml +http://dwp.bigplanet.com/crestinginc/discussion/list.nhtml?profile=discussion +http://194.128.65.4/pa/cm199900/cmwib/wb991127/ahead.htm +http://61.128.218.34/book/hhsh/wu/wolongsheng/jiangxue/055.htm +http://gd.cnread.net/cnread1/wgwx/t/tuwen/kxj/035.htm +http://gd.cnread.net/cnread1/wgwx/t/tuwen/kxj/041.htm +http://www.redrocksports.com/sports/webSession/shopper/RR972959743-31143/store/dept-5/department/dept-5/item/50110 +http://www.redrocksports.com/sports/webSession/shopper/RR972959743-31143/store/dept-5/department/dept-5/item/51530 +http://www.redrocksports.com/sports/webSession/shopper/RR972959743-31143/store/dept-5/department/dept-5/item/51510 +http://www.yorku.ca/org/yusa/who99/wh02.html +http://www1.onelist.com/message/ar8200/3350 +http://www.kodak.se/US/en/corp/features/kern/jodi/index.shtml +http://cafe3.daum.net/Cafe-bin/Bbs.cgi/semtle15pds/rnw/zka/B2-kB27k +http://my.egroups.com/messages/dcfwriters/187?expand=1 +http://link.fastpartner.com/do/session/600414/vsid/1970/tid/1970/cid/135878/mid/1060/rid/1488/chid/1970/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/gosafe.php +http://www.tiscover.com/1Root/Kontinent/6/Staat/7/Bundesland/20/Ort/108147/Bauernhof/315126/Homepage/f_homepage...2.html +http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/net/gnut/patches/?D=A +http://www.mtranslations.cz/40/cs/dictionary/dictionary_index.html +http://pub10.ezboard.com/BBSSystem.handleLoginCheck?action=forgotPassword&boardName=alakazamslair +http://tour.stanford.edu/cgi/locate3.prl/139.6/jMtlo +http://www.shopworks.com/index.cfm/action/search/userid/00042DDE-2F63-19FE-9038010B0A0ADCF2 +http://thestar.com/back_issues/ED20001004/life/20000820LFE01_AH-BATH.html +http://thestar.com/back_issues/ED20001004/life/20000818LFE01_LI-DEPRESS.html +http://thestar.com/back_issues/ED20001004/life/20000806LFE01_AH-DAHLIAS.html +http://www.hole.kommune.no/hole/journweb.nsf/7e180336094ef23a412568cd004a5093/466e7592a4c6c7ccc12568e3004402e8!Navigate&To=Prev +http://mailthat.subportal.com/sn/Multimedia_and_Graphics/Graphics_Editors/3752.html +http://www.gbnf.com/genealogy/rockwel4/html/d0014/I6348.HTM +http://www.lookforforestry.com/catalog/FORSALE/FORKLIFT/JCB/930RTFL/ +http://www.espl.org/mearscol/pagendxs/stockley/d1828.htm +http://in.egroups.com/messages/eyecandy/1290 +http://in.egroups.com/message/eyecandy/1264 +http://in.egroups.com/message/eyecandy/1271 +http://www.ferien-immobilien.de/bayern/deggendorf/Verkauf/Exklusiv-IB/Startseite/3d-service/Gemeinsam/Immolink/Gemeinsam/vertriebspartner.htm +http://linux99.inrialpes.fr/linux/RPM/redhat/6.2/i386/Distribs.html +http://students.lsu.edu/students/main.nsf/Pages/CSISAJ1!OpenDocument&ExpandSection=4,13,11,10 +http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/1997-98/jmc1/labs/Ex04/jwb97/?S=A +http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/folderFrame/100001/0/alpha/2509069 +http://www.scifi.com/bboard/browse.cgi/1/5/545?lnum=4223 +http://www.fogdog.com/cedroID/ssd3040183304719/customer_service/ +http://www.fogdog.com/cedroID/ssd3040183304719/nav/products/winter_sports/1b/suits/ +http://www.gpul.org/ftp/lang/java/JDK/jdk1.1.6-docs/api/java.lang.Math.html +http://www.gpul.org/ftp/lang/java/JDK/jdk1.1.6-docs/api/java.lang.IncompatibleClassChangeError.html +http://www.staroriental.net/nav/soeg/ihf,aai,n2,418,Electric+Wave+Girl+1998.html +http://www.parentsplace.com/expert/lactation/basics/qa/0,3459,5757,00.html +http://www.francetrade.fr/opcvm/details/4/44200.html +http://www.francetrade.fr/opcvm/details/4/42876.html +http://genforum.genealogy.com/cgi-bin/print.cgi?phillippines::319.html +http://www.affiliate.hpstore.hp.co.uk/do/session/380860/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-photoworld.com/photoworld.asp?lang=f +http://ftp.eq.uc.pt/software/unix/Linux/docs/HOWTO/translations/italian/distributions/?M=A +http://store1.europe.yahoo.com/brink2/2000074017704.html +http://store1.europe.yahoo.com/brink2/2000073276003.html +http://www.cbe21.com.cn/xueke/dili/jiaoxuezs/ziliaojn/tupianhc/i0733.htm +http://www.networkpatternmatching.com/inventory/L/Limoges-American/Limoges-American-Tea-Rose-(Green).html +http://www.networkpatternmatching.com/inventory/L/Limoges-American/Limoges-American-Toledo-Delight-(Sand).html +http://ftp.debian.org/dists/sid/non-free/binary-hppa/games/?M=A +http://www.angelfire.com/vt/kAoZzZ +http://yp.gates96.com/14/28/60/15.html +http://yp.gates96.com/14/28/60/17.html +http://yp.gates96.com/14/28/60/41.html +http://yp.gates96.com/14/28/60/75.html +http://yp.gates96.com/14/28/60/83.html +http://yp.gates96.com/14/28/60/87.html +http://yp.gates96.com/14/28/61/96.html +http://yp.gates96.com/14/28/62/12.html +http://yp.gates96.com/14/28/62/28.html +http://yp.gates96.com/14/28/62/45.html +http://yp.gates96.com/14/28/62/74.html +http://yp.gates96.com/14/28/63/24.html +http://yp.gates96.com/14/28/63/45.html +http://yp.gates96.com/14/28/64/33.html +http://yp.gates96.com/14/28/65/84.html +http://yp.gates96.com/14/28/66/28.html +http://yp.gates96.com/14/28/66/49.html +http://yp.gates96.com/14/28/67/15.html +http://yp.gates96.com/14/28/67/17.html +http://yp.gates96.com/14/28/67/92.html +http://yp.gates96.com/14/28/67/95.html +http://yp.gates96.com/14/28/68/10.html +http://yp.gates96.com/14/28/69/20.html +http://yp.gates96.com/14/28/69/64.html +http://yp.gates96.com/14/28/69/74.html +http://www.cs.kuleuven.ac.be/documentation/Sun/WorkShop/html_docs/c-plusplus/stdlibcr/deq_4164.htm +http://no.egroups.com/message/Holiday-Best/571?source=1 +http://www.outpersonals.com/cgi-bin/w3com/pws/out/G1hIPcWIQWr-i3fHpjDuaPPPdDR9n25II-MFpjX9vR_df0A3ukwPXLd19bYe7oxRH5Zr5z3G_wJnwM6gAVSOlRUN-p5MKYEBVJa1T-GaZS44Z98yjSST2LfXzEdc9Xqp8W0jRiNL6iAX +http://msn.expedia.co.uk/wg/Asia/China/P31642.asp +http://www.angelfire.com/fl2/gulfcoastsoftball/images/?N=D +http://www.greenleaves.com/bookcat/gb_0879513802.html +http://cn.egroups.com/post/Digitrends_Daily?act=reply&messageNum=210 +http://www.bookhome.net/wuxia/hzlz/li/031.html +http://gb.toget.com.tw/intro/game_action/game_action_click/19990804_3190_dl.html +http://www.mbnet.mb.ca/gray/cgrcc.html +http://www.civila.com/noticias/chat/logos/juegos/esgratis/logos/index.html-ssi +http://www.ytmag.com/cgi-bin/redirect.cgi/1197948180 +http://debian.tod.net/debian/dists/sid/contrib/binary-arm/admin/?M=A +http://haste.co.kr/www.amaquest.com.tw/support.htm +http://www.diogenes.ch/4DACTION/web_rd_aut_frlist_az/ID=483376&chr=A +http://ads.neoseeker.com/remoteclick/GB972959289/ +http://urawa.cool.ne.jp/whoinside/cg/cgframe2.htm +http://excite.de/bildung/katalog/33148 +http://plat.debian.or.jp/debian-archive/dists/Debian-2.0/hamm/binary-m68k/news/ +http://wwwpriv.uni-koblenz.de:81/~admin/Doku/HtmlTutor/tcdkc.htm +http://platsbanken.amv.se/kap/text/62/000907,150090,120901,40,1427050362.shtml +http://216.35.79.131/sites/gunits/022140u.html +http://www.hotelboulevard.com/fr/paris/standard/htmle55cd396d0d1450ad1eddadf65bd6574/sessionLang/ANG/prov/browse/cp/75011/resultatSearch.html +http://www.ftp.uni-erlangen.de/cgi-bin/view/pub/unix/Linux/MIRROR.KDE/unstable/apps/README +http://www.ftp.uni-erlangen.de/pub/unix/Linux/MIRROR.KDE/unstable/apps/network/ +http://www.ycwb.com.cn/gb/2000/04/28/dnzk/itkx/3.html +http://polygraph.ircache.net:8181/http_-2www.microsoft.com/guestbook/http_-2www.nmpinc.com/cfiguest.htm +http://www.our-home.org/giulianovallemani/success.htm +http://retailer.gocollect.com/do/session/1912838/vsid/2312/tid/2312/cid/573127/mid/1020/rid/2147/chid/2210/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlZe5ofpLqjXLpl4/url/http://www.gocollect.com/product_display/products/product_lines.asp +http://binary.tucows.com/win2k/adnload/60913_29719.html +http://www.allhealth.com/kickbutt/qa/0,4801,6565_168263-1,00.html +http://library.cuhk.edu.hk/search*chi/tChinese+history+series.+[Motion+picture]/tchinese+history+series/-5,1,1,B/frameset&F=tchinese+history+index+to+learned+articles+1902+1962&1,1, +http://cafe4.daum.net/Cafe-bin/Bbs.cgi/culturalistpds/lst/qqeq/1/zka/B2-kB27p +http://lib1.nippon-foundation.or.jp/1997/0012/contents/086.htm +http://members.tripod.com/~theernest/lit/long.html +http://de.excite.de/auto/katalog/13030 +http://www.szinfo.com/book/ke/fam/nk1/wlsf/001.htm +http://www.backflip.com/members/cquinn/466730/sort=1/ +http://130.158.208.53/WWW/PDB2/PCD4711/htmls/49.html +http://astronomysite.com/mapug1/15/msg15752.htm +http://astronomysite.com/mapug1/15/msg15922.htm +http://astronomysite.com/mapug1/15/msg15970.htm +http://astronomysite.com/mapug1/12/msg12909.htm +http://astronomysite.com/mapug1/9/msg9909.htm +http://astronomysite.com/mapug1/7/msg7248.htm +http://astronomysite.com/mapug1/7/msg7288.htm +http://astronomysite.com/mapug1/7/msg7300.htm +http://astronomysite.com/mapug1/7/msg7277.htm +http://astronomysite.com/mapug1/3/msg3386.htm +http://astronomysite.com/mapug1/0/msg898.htm +http://astronomysite.com/mapug1/2/msg2146.htm +http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/x11-fm/systemg/pkg/Attic/DESCR +http://www.posterwelt.de/byers/bye2506.htm +http://www.5a8.com/book/wg/zpj/f/fajieyefu/huimie/003.htm +http://www.5a8.com/book/wg/zpj/f/fajieyefu/huimie/015.htm +http://businessrecorder.com/story/S0015/S1510/top +http://sunsite.org.uk/Mirrors/ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/nt351/hotfixes-postsp5/sec-fix/?S=A +http://sunsite.org.uk/Mirrors/ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/nt351/hotfixes-postsp5/sec-fix/readme.txt +http://www.angelfire.com/ky/dodone/HistJ.html +http://www.cricinfo.com/link_to_database/ARCHIVE/1997-98/WI_IN_PAK/WI_IN_PAK_NOV-DEC1997_WI-SQUAD.html +http://www.egroups.com/message/-Girlhelp-/3251 +http://www.egroups.com/message/-Girlhelp-/3268 +http://202.130.244.3/wuliwangye/help/help.htm +http://ftp.gwdg.de/pub/EMIS/EMS/journals/SLC/divers/mirror.html +http://ftp.gwdg.de/pub/EMIS/EMS/journals/SLC/divers/s20ghinelli.html +http://ftp.gwdg.de/pub/EMIS/EMS/journals/SLC/divers/s25dress.html +http://ftp.gwdg.de/pub/EMIS/EMS/journals/SLC/divers/s30wen.html +http://ftp.gwdg.de/pub/EMIS/EMS/journals/SLC/divers/slc41email.html +http://guardian.co.uk/Print/0,3858,3889048,00.html +http://genforum.genealogy.com/mccallum/messages/187.html +http://genforum.genealogy.com/mccallum/messages/192.html +http://genforum.genealogy.com/mccallum/messages/133.html +http://genforum.genealogy.com/mccallum/messages/95.html +http://genforum.genealogy.com/mccallum/messages/82.html +http://genforum.genealogy.com/mccallum/messages/30.html +http://dekooi.tucows.com/win2k/adnload/37333_29427.html +http://dekooi.tucows.com/win2k/adnload/37624_29418.html +http://dekooi.tucows.com/win2k/preview/139483.html +http://www.zurich-schweiz.ch/static/it/peraziende/grandiimprese/riskmanagement/procedere_con_metodo/gestione_del_rischio/ +http://cn.egroups.com/login.cgi?login_target=%2Fmessage%2Fcertdev%2F373 +http://www.angelfire.com/pa2/DreamAvs/ +http://www.madisonmag.com/sh/entertainment/stories/entertainment-20000713-013454.html +http://variety.studiostore.com/browse/WHATSNEW/SHIRT/b.FAVORITES%20WHATSNEW/s.GqXR0UHu +http://variety.studiostore.com/browse/WHATSNEW/MUG/b.FAVORITES%20WHATSNEW/s.GqXR0UHu +http://www.ecs.soton.ac.uk/~ecc/teaching/java/ExampleCode/Chapter10/s03/ +http://ftp.nacamar.de/pub/NetBSD/packages/1.4/alpha/cross/?M=A +http://www.he.ctc.org.cn/ctc2/news/internet/develop/news0413-7.htm +http://www.he.ctc.org.cn/ctc2/news/internet/invest/news0523-4.htm +http://www.he.ctc.org.cn/ctc2/news/internet/invest/news0514-1.htm +http://www.he.ctc.org.cn/ctc2/news/internet/politics/news0518-1.htm +http://www.linux.com/networking/network/applications/industry/trade_show/internet/ +http://www.linux.com/networking/network/applications/industry/trade_show/Motorola/ +http://www.linux.com/networking/network/applications/industry/trade_show/distro/ +http://iinet.tukids.tucows.com/mac/5-8/macmulti58_license.html +http://www.leg.wa.gov/pub/rcw%20-%20text/title_48/chapter_098/rcw_48_98_005.txt +http://universal.eud.com/1999/02/28/28304AA.shtml +http://www.firstview.com/WRTWfall97/MAX_MARA/P033.html +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/SOSIAALI-+JA+TERVEYSALA/tietoverkot/suositukset/tietotekniikka/sanat/getdoc.akM?document_id=479 +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/SOSIAALI-+JA+TERVEYSALA/tietoverkot/suositukset/tietotekniikka/sanat/www/ +http://ns.studenti.to.it/~s86852/applets/tetris.htm +http://www.egroups.com/message/grebel-list/1014 +http://emedici.net/www.homesbyavi.com/canadian_site/communities/evergreen/evergreen.html +http://ring.toyama-ix.net/pub/net/wu-ftpd/wu-ftpd/binaries/?N=D +http://ring.nii.ac.jp/archives/text/CTAN/support/vmspell/?N=D +http://ftpsearch.belnet.be/packages/CPAN/modules/by-authors/John_Macdonald/CHECKSUMS +http://students.depaul.edu/~eephrem/piazza123 +http://students.depaul.edu/~eephrem/maqdoomi.html +http://ftp.unina.it/pub/Unix/KDE/stable/2.0/distribution/deb/?D=A +http://www.dulux.co.uk/UKRETAIL:1433075516:DFinity.1QJiP4jMofi7bof +http://yp.gates96.com/14/20/10/26.html +http://yp.gates96.com/14/20/10/34.html +http://yp.gates96.com/14/20/10/63.html +http://yp.gates96.com/14/20/11/36.html +http://yp.gates96.com/14/20/11/73.html +http://yp.gates96.com/14/20/12/93.html +http://yp.gates96.com/14/20/13/42.html +http://yp.gates96.com/14/20/13/44.html +http://yp.gates96.com/14/20/14/9.html +http://yp.gates96.com/14/20/15/62.html +http://yp.gates96.com/14/20/15/77.html +http://yp.gates96.com/14/20/16/52.html +http://yp.gates96.com/14/20/16/70.html +http://yp.gates96.com/14/20/16/83.html +http://yp.gates96.com/14/20/17/91.html +http://yp.gates96.com/14/20/17/98.html +http://yp.gates96.com/14/20/18/8.html +http://yp.gates96.com/14/20/18/73.html +http://yp.gates96.com/14/20/19/38.html +http://yp.gates96.com/14/20/19/42.html +http://yp.gates96.com/14/20/19/56.html +http://www.wco.com/~havok/wellington.html +http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bbm0019678/7,-1,0,E/frameset&F=bbm0019685&1,1 +http://cdrom.zeelandnet.nl/elfsound/archief.htm +http://businessrecorder.com/story/S0055/S5527/top +http://www.private-immobilien-boerse.de/DominikanischeRep/verkauf/Versteigerungen-IB/Startseite/Gemeinsam/GmbH-Kauf-Verkauf-Insolvenz-konkurs/Startseite/IIM-Teil/Startseite/froben.htm +http://ring.nii.ac.jp/archives/lang/perl/CPAN/doc/manual/html/pod/perlfunc/utime.html +http://yp.gates96.com/14/21/10/71.html +http://yp.gates96.com/14/21/11/15.html +http://yp.gates96.com/14/21/12/55.html +http://yp.gates96.com/14/21/12/58.html +http://yp.gates96.com/14/21/13/94.html +http://yp.gates96.com/14/21/14/7.html +http://yp.gates96.com/14/21/14/12.html +http://yp.gates96.com/14/21/14/32.html +http://yp.gates96.com/14/21/14/96.html +http://yp.gates96.com/14/21/15/3.html +http://yp.gates96.com/14/21/15/51.html +http://yp.gates96.com/14/21/16/32.html +http://yp.gates96.com/14/21/16/87.html +http://yp.gates96.com/14/21/17/19.html +http://yp.gates96.com/14/21/17/31.html +http://yp.gates96.com/14/21/18/15.html +http://yp.gates96.com/14/21/18/68.html +http://yp.gates96.com/14/21/19/56.html +http://cafe2.daum.net/Cafe-bin/Bbs.cgi/kjbugopds/lst/qqa/f/zka/B2-kB2Rt +http://legalminds.lp.findlaw.com/list/courtinterp-spanish/frm04580.html +http://legalminds.lp.findlaw.com/list/courtinterp-spanish/frm04611.html +http://genforum.genealogy.com/cgi-genforum/forums/sweden.cgi?5207 +http://variety.studiostore.com/main/b.FAVORITES%20NOSTALGI%20CLASTV%20ILOVELUCY/s.VfgR3aEr +http://variety.studiostore.com/help/b.FAVORITES%20NOSTALGI%20CLASTV%20ILOVELUCY/s.VfgR3aEr +http://bsd.sinica.edu.tw/cgi-bin/cvsweb.cgi/ports/x11-clocks/xalarm/patches/Attic/patch-aa?only_with_tag=RELEASE_2_2_8 +http://gd.cnread.net/cnread1/ztxs/h/henggouzhengshi/eld/013.htm +http://gd.cnread.net/cnread1/ztxs/h/henggouzhengshi/eld/022.htm +http://gd.cnread.net/cnread1/ztxs/h/henggouzhengshi/eld/024.htm +http://ftp.unina.it/pub/Amiga/NetBSD/NetBSD-current/xsrc/xc/lib/xkbfile/?N=D +http://202.99.23.245/zdxw/17/20000217/200002171734.html +http://sunsite.org.uk/packages/netbsd/NetBSD-current/pkgsrc/net/batchftp/files/ +http://www.highwired.net/Activity/PrintArticle/0,1640,1326-186648,00.html +http://phpbuilder.net/forum/archives/1/2000/10/1/104426?&print_mode=1 +http://www.cognos.co.uk/de/vertriebspartner/vertriebspartner_plz.html +http://citeseer.nj.nec.com/cidcontext/3974259 +http://fi.egroups.com/message/free-classifieds/4556?source=1 +http://genforum.genealogy.com/cgi-genforum/forums/epler.cgi?2 +http://no.egroups.com/post/relations_iVillage?act=reply&messageNum=5 +http://198.103.152.100/search*frc/lHD69+P75H84/lhd+++69+p75+h84/-5,-1,0,E/frameset&F=lhd+++69+p75+k47+1984&1,1 +http://www.4positiveimages.com/4positiveimages/921456486/UserTemplate/2 +http://haha.3322.net/donghua/agui/adi/6.htm +http://mediate.magicbutton.net/do/session/625591/vsid/4573/tid/4573/cid/88043/mid/2247/rid/2383/chid/3527/url/http://www.winesmart.com/CaseDetails.asp?idCase=66 +http://www.lettera.de/tp/deutsch/inhalt/lis/8676/1.html +http://www.citybrazil.com.br/sc/regioes/joinville/expressoes.htm +http://webcvs.kde.org/cgi-bin/cvsweb.cgi/www/food/worse_is_better.html?sortby=date +http://yp.gates96.com/7/45/60/13.html +http://yp.gates96.com/7/45/61/3.html +http://yp.gates96.com/7/45/61/60.html +http://yp.gates96.com/7/45/62/37.html +http://yp.gates96.com/7/45/62/48.html +http://yp.gates96.com/7/45/62/70.html +http://yp.gates96.com/7/45/64/9.html +http://yp.gates96.com/7/45/64/33.html +http://yp.gates96.com/7/45/64/43.html +http://yp.gates96.com/7/45/64/55.html +http://yp.gates96.com/7/45/65/14.html +http://yp.gates96.com/7/45/65/48.html +http://yp.gates96.com/7/45/65/57.html +http://yp.gates96.com/7/45/66/27.html +http://yp.gates96.com/7/45/67/51.html +http://yp.gates96.com/7/45/68/12.html +http://yp.gates96.com/7/45/68/78.html +http://yp.gates96.com/7/45/69/25.html +http://www.msb.malmo.se/search*swe/aHarley,+Robert/aharley+robert/-5,-1,0,B/browse +http://www.superdownloads.com.br/linkinvalido.cfm?ID=748 +http://linuz.sns.it/doc/howto/en/html/AI-Alife-HOWTO-6.html +http://www.linux.com/networking/network/market/tools/applications/ +http://www.linux.com/networking/network/market/tools/frame_relay/ +http://www.linux.com/networking/network/market/tools/e-commerce/ +http://opac.lib.ntnu.edu.tw/search*chi/aUnited+Nations.+Dept.+of+Economic+and+Social+Affairs/aunited+nations+dept+of+economic+and+social+affairs/7,-1,0,B/frameset&F=aunited+nations+economic+and+social+commission+for+asia+and+the+pacific&6,,7 +http://www.affiliate.hpstore.hp.co.uk/do/session/380863/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/assistance/entry.asp +http://www.affiliate.hpstore.hp.co.uk/do/session/380863/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/entry.asp +http://www.shmoo.com/mail/ids/oct99/msg00288.html +http://bsd.sinica.edu.tw/ftp_pub/NetBSD/packages/1.3/hp300/?M=A +http://bsd.sinica.edu.tw/ftp_pub/NetBSD/packages/1.3/hp300/archivers/ +http://www.affiliate.hpstore.hp.co.uk/do/session/380868/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/REGISTRATION/entry.asp +http://www.insideneworleans.com/shared/health/adam/ency/imagepage/1562.000872.html +http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/devel/xxgdb/patches/patch-ac +http://genforum.genealogy.com/casey/messages/327.html +http://genforum.genealogy.com/casey/messages/164.html +http://genforum.genealogy.com/casey/messages/337.html +http://genforum.genealogy.com/casey/messages/73.html +http://genforum.genealogy.com/casey/messages/57.html +http://genforum.genealogy.com/casey/messages/50.html +http://genforum.genealogy.com/casey/messages/23.html +http://genforum.genealogy.com/casey/messages/116.html +http://www.msb.malmo.se/search*swe/aNorman,+Karin,+1947-/anorman+karin+1947/-5,-1,0,B/frameset&F=anorman+leslie&1,1 +http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/rnumber/9096335 +http://www.mindspring.com/~arachnid/?S=D +http://www6.freeweb.ne.jp/business/n-bns/hre/ +http://news.swww.com.cn/wccdaily/review/200005/29/html/0908.htm +http://tucows.hom.net/croomnt_rating.html +http://www.trax.nilex.co.uk/trax.cgi/A1C/A2S/1AS/A4L/A4D/B1R/ +http://www.trax.nilex.co.uk/trax.cgi/A1C/A2S/1AS/A4L/A4D/A5L/ +http://www.5a8.com/book/kh/zg/zpj/h/heju/001.htm +http://www.5a8.com/book/kh/zg/zpj/h/heju/002.htm +http://www.luckyman.de/computer/hpaccess/java_cgi/java_applet/linien/applet_linien_nav1.htm +http://www.secure-me.net/information/kb/POP +http://in.egroups.com/message/BodybuildingContests/2804 +http://in.egroups.com/message/BodybuildingContests/2820 +http://in.egroups.com/message/BodybuildingContests/2822 +http://theconnection.vnunet.com/Analysis/Stfriend/70206 +http://www.yorosiku.net:8080/-_-http://www.nrcse.washington.edu/newsletter/newsletter.pdf +http://www.britishairways.nl/regional/barbados/docs/spec_world_offer.shtml +http://www.xmwb.sh.cn/xmwb/19981117/BIG5/13421^4111719.htm +http://www.z-plus.de/TEXTE/HOMEPAGE/HILFE/HILFE_SURFTIPS201099/text5.html +http://uzgamez.subportal.com/games/previews/0900/westwood/russian_general.html +http://bsd.sinica.edu.tw/ftp_pub/NetBSD/packages/1.3/sun3/?D=A +http://my.egroups.com/messages/dcfwriters/132?expand=1 +http://my.egroups.com/message/dcfwriters/147 +http://my.egroups.com/message/dcfwriters/149 +http://oss.sgi.com/cgi-bin/cvsweb.cgi/projects/failsafe/FailSafe/failsafe/scripts/?only_with_tag=MAIN +http://sound-dist.secured.co.uk/cgi-bin/psShop.cgi/add|8P007|972959615|Warm===and===Dry|user|0|1,0,0,1 +http://www.alsapresse.com/jdj/00/01/13/MA/photo_6.html +http://www.highwired.net/ESchoolDrive/Frameset/0,5592,13577-52,00.html +http://uk.sports.yahoo.com/000922/59/ak705.html +http://universal.eud.com/1999/02/26/26204DD.shtml +http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/audio/gkrellmvolume/pkg-descr?only_with_tag=MAIN +http://www3.skolverket.se/kursinfo/99_00/skolform/21/alt_nav/S_52S_10S_36VAV_SVSTEK_1715.HTML +http://www3.skolverket.se/kursinfo/99_00/skolform/21/alt_nav/S_52S_10S_36VAV_SVSTEK_1719.HTML +http://www.wsrn.com/apps/research/history.xpl?s=CMDCD&f=HISTORY +http://www.wsrn.com/apps/charts/?s=CMDCD&data=Z10 +http://pub3.ezboard.com/utherealcharron.showPublicProfile?language=EN +http://ring.shibaura-it.ac.jp/archives/graphics/gimp/gtk/binary/DEBIAN/stable/?S=A +http://209.52.189.2/discussion.cfm/autism/29762/198522 +http://www.affiliate.hpstore.hp.co.uk/do/session/380851/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/assistance/entry.asp +http://www01.sankei.co.jp/advertising/furusato/tokuhain/9810/1018sindou.html +http://kulichki-mac.rambler.ru/abiturient/ak.htm +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+9,1-20,0+9,0 +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+9,1-20,0+18,0 +http://ballesta.inrialpes.fr/Infos/Personnes/Christophe.Rippert/ressources/tutorial/security1.2/summary/glossary.html +http://www.affiliate.hpstore.hp.co.uk/do/session/380872/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/main/respect/ +http://www11.cplaza.ne.jp/babyweb/bbs/bdnmp01/no24/99N.html +http://www.homeway.com.cn/lbi-html/news/zhxw/gatxw/20000922/165807.shtml +http://gd.cnread.net/cnread1/yqxs/d/dingqianrou/ssqj/009.htm +http://library.bangor.ac.uk/search/tBiol.+philos/tbiol+philos/-17,-1,0,B/frameset&F=tbioindicators+and+environmental+management&1,1 +http://dante.bdp.it/cgi-bin/poseidon_v2.0/reflect/poseidon/disc/peacelink-scuola/70630505/view/1 +http://www.indian-express.com/ie/daily/19980626/17750374.html +http://www.indian-express.com/ie/daily/19980626/17751044.html +http://www.indian-express.com/ie/daily/19980626/17751334.html +http://www.indian-express.com/ie/daily/19980626/17751494.html +http://polygraph.ircache.net:8181/services/define/http_-2www.disney.com/links.html +http://pub10.ezboard.com/fsavings4yousavings4you.subscribeUnregisteredToTopic?topicID=56.topic +http://www8.freeweb.ne.jp/shopping/arthome/arthome/menu.html +http://rainforest.parentsplace.com/dialog/get/medinfo/4/1.html?outline=3 +http://www.emerchandise.com/aboutus/b.TV%20SATNIGHTLIVE/s.afJ7iGE2 +http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/net/arpwatch/pkg/?S=A +http://ring.omp.ad.jp/archives/NetBSD/packages/pkgsrc/net/arpwatch/pkg/DESCR +http://210.178.135.1/netbbs/Bbs.cgi/nhic30872/qry/zka/B2-kBI-o/pno/0/qqo/004A/qqatt/^ +http://yp.gates96.com/8/48/0/54.html +http://yp.gates96.com/8/48/1/98.html +http://yp.gates96.com/8/48/2/23.html +http://yp.gates96.com/8/48/3/13.html +http://yp.gates96.com/8/48/3/14.html +http://yp.gates96.com/8/48/3/23.html +http://yp.gates96.com/8/48/3/84.html +http://yp.gates96.com/8/48/4/5.html +http://yp.gates96.com/8/48/4/72.html +http://yp.gates96.com/8/48/5/4.html +http://yp.gates96.com/8/48/5/49.html +http://yp.gates96.com/8/48/6/38.html +http://yp.gates96.com/8/48/6/89.html +http://yp.gates96.com/8/48/8/10.html +http://yp.gates96.com/8/48/8/41.html +http://yp.gates96.com/8/48/8/87.html +http://news.medscape.com/adis/CDI/2000/v19.n02/cdi1902.02.biel/cdi1902.02.biel-01.html +http://www.parsonstech.com/genealogy/trees/PKINGMAN/d2438.htm +http://www.parsonstech.com/genealogy/trees/PKINGMAN/d2502.htm +http://www.chaos.dk/sexriddle/j/c/b/o/ +http://www.outpersonals.com/cgi-bin/w3com/pws/out/FahI8ikSPIvk79ErK106-87Jy3U1_XgCksR4DWkUOldKaD_pciJBXOOmI2Sr4jXlDCT9Mkz59aBZhyyi3xxBeYROt0IpVObKZD4YcwBAhl9afrfb6y3nWI3SwdRE_Vp3d80RzmrDkPVZYQkJyvOgorzS +http://opac.lib.rpi.edu/search/dchemicals+dictionaries/-5,-1,0,E/frameset&dchemicals+catalogs&3,,0 +http://opac.lib.rpi.edu/search/dchemicals+dictionaries/-5,-1,0,E/frameset&dchemicals+catalogs+periodicals&1,1 +http://opac.lib.rpi.edu/search/dchemicals+dictionaries/-5,-1,0,E/frameset&dchemicals+dictionaries&3,,0 +http://opac.lib.rpi.edu/search/dchemicals+dictionaries/-5,-1,0,E/frameset&dchemicals+economic+aspects+united+states&1,,0 +http://www.jsonline.com/news/state/oct00/lambeau31103000a.asp +http://polygraph.ircache.net:8181/used/http_-2www.scubaring.com/http_-2www.alpinehotel.com/chinese/chine.htm +http://www.kaos.dk/sex-riddle/k/a/k/i/p/g/g/e/ +http://haikou.hainan.gov.cn/ghgl/ghsc/hkfg3020.html +http://variety.studiostore.com/main/VARIETY/s.Fz90iGDh +http://library.cuhk.edu.hk/search*chi/cPN595.C6I18+1993/cpn++595+c6+i18+1993/-5,1,1,E/frameset&F=cpn++595+c6+k6+1997&1,1, +http://library.cuhk.edu.hk/search*chi/cPN595.C6I18+1993/cpn++595+c6+i18+1993/-5,1,1,E/frameset&F=cpn++595+c6+l515&1,1, +http://link.fastpartner.com/do/session/600425/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/learn.htm +http://www.nanyang.com.my/20001020/articles/15-10-2000k16.htm +http://202.99.23.245/rmrb/199912/11/newfiles/col_19991211001063_zhxw.html +http://help.sap.com/saphelp_45b/helpdata/en/a7/2872510a6c11d28a220000e829fbbd/frameset.htm +http://www.s10.sexshare.com/~pornking/hardcore/43.html +http://www.gbnf.com/genealogy/Lawler99/html/d0102/I1772.HTM +http://ring.edogawa-u.ac.jp/pub/linux/RedHat/aic/OLD/aic7xxx-5.0.x/boot_disks/5.0.11/SuSE/?D=A +http://www.t-online.de/sport/inhalte/adispi51.htm +http://ftp.lip6.fr/pub11/FreeBSD/development/FreeBSD-CVS/src/kerberos5/usr.sbin/k5stash/ +http://education.legend-net.com/xinwen/gaokao/zl5/zhsh/3/zhshyk.html +http://www.contractorresource.com/Wyoming/Cody/ +http://213.36.119.69/do/session/152998/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/boutique/ +http://213.36.119.69/do/session/153000/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/hotels.html +http://213.36.119.69/do/session/153000/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www3.travelprice.com/voyages/recherche.phtml +http://ftp.unina.it/pub/TeX/macros/latex/contrib/supported/combine/?D=A +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=178,2,11 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=178,2,233 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=237&discrim=178,2,5 +http://www12.freeweb.ne.jp/novel/urufu24/linkz/ug1.html +http://www12.freeweb.ne.jp/novel/urufu24/linkz/pv.html +http://computers.kharkov.ua/win/43/ +http://www.1001e.net/nk4/022.htm +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=4&discrim=93,164,176 +http://dic.empas.com/show.tsp/?q=revisable&f=B +http://yp.gates96.com/0/28/30/45.html +http://yp.gates96.com/0/28/30/46.html +http://yp.gates96.com/0/28/31/24.html +http://yp.gates96.com/0/28/32/64.html +http://yp.gates96.com/0/28/33/28.html +http://yp.gates96.com/0/28/33/85.html +http://yp.gates96.com/0/28/33/87.html +http://yp.gates96.com/0/28/33/96.html +http://yp.gates96.com/0/28/34/52.html +http://yp.gates96.com/0/28/35/7.html +http://yp.gates96.com/0/28/36/23.html +http://yp.gates96.com/0/28/36/52.html +http://yp.gates96.com/0/28/37/50.html +http://yp.gates96.com/0/28/38/85.html +http://yp.gates96.com/0/28/39/16.html +http://www.fan590.com/JamMoviesReviewsE/earth_king.html +http://www.sportbuecher.de/shop/3-88034-750-6.html +http://www.msb.malmo.se/search*swe/aWhitaker,+Galvin,+Utgivare/awhitaker+galvin/-5,-1,0,B/exact&F=awhitburn+joel&1,2 +http://ftp.sunet.se/pub/security/vendor/microsoft/winnt/frn/nt40/?M=A +http://www.intervoz.com.ar/2000/03/02/op_n04.htm +http://www.ntut.edu.tw/~s7370840/8-19.htm +http://www.back2roots.org/Music/Files/Wondergirl%20-%20You%26Me/ +http://www.private-immobilien-boerse.de/nordrhein-Westfalen/Muehlheim-ruhr/Verkauf/3d-service/IIM-Teil/Startseite/Gemeinsam/Inserieren/IIM-Teil/Startseite/frinfo.htm +http://web.singnet.com.sg/~spirit5/letters/oct2000/frankm1025-3.htm +http://web.singnet.com.sg/~spirit5/letters/oct2000/davidp1025.htm +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=decuplicavamo&l=it +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=decuplichiate&l=it +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=decuplichereste&l=it +http://members.tripod.com/~OZEMU/cgi-bin/ +http://ring.tains.tohoku.ac.jp/archives/pack/dos/hardware/midi/?D=A +http://kutschen.de/Schoner/info-e/info-e/collections/literature/ +http://www.jamba.de/KNet/_KNet-MJJ8j1-DGd-13dgc/showInfo-special1.de/node.0/cde7f1uou +http://www.jamba.de/KNet/_KNet-MJJ8j1-DGd-13dgy/browse.de/node.0/cenv0b09a +http://in.egroups.com/message/sfconsim-l/6415 +http://genforum.genealogy.com/cgi-genforum/forums/vt.cgi?4123 +http://www.linux.com/networking/network/sap/article/price/VA_Linux_Systems/ +http://www.linux.com/networking/network/sap/article/price/regulation/ +http://slacvx.slac.stanford.edu/sldmcwww/mc/MC74BB_98R16B_WIN_ALL.HTML +http://www.xmission.com/~dkenison/cgi/lwgate.cgi/KLR650/archives/v02.n1611/date/article-15.html +http://www.iwon.com/home/movies/movies_filmography_page/0,13178,Macon+McCalman,00.html +http://excite.de/spiele/katalog/26997 +http://www.trax.nilex.co.uk/trax.cgi/A1C/B1S/B2R/A2U/B3S/B1R/ +http://www.power2lead.com/Global/English.nsf/pgWWLocations!OpenPage&ExpandSection=2,6,27,9,26 +http://itcareers.careercast.com/texis/it/itjs/+owwBm1eP0-dzwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewDPwdGpdGwBodDa5dhBiwGna5O5BnManDtoDnnGa5nDodGa5BwhhaidGAanLpnGonDqnaqdMp1BnGamnVncdpaMFqhTfR20Dzme8twwwpBmer+D86e9qwww5rmeZpwwwBrmeZpwww/morelike.html +http://pub4.ezboard.com/fnationoferidinegeneral.showAddReplyScreenFromWeb?topicID=615.topic&index=2 +http://www.chaos.dk/sexriddle/m/i/s/x/ +http://kiasuplanet.subportal.com/sn/Games/Tetris_Clone_Games/5532.html +http://kiasuplanet.subportal.com/sn/Games/Tetris_Clone_Games/11418.html +http://kiasuplanet.subportal.com/sn/Games/Tetris_Clone_Games/676.html +http://www.rge.com/pub/networking/ldap/umich/max500/beta/?M=A +http://my.egroups.com/dir/Health/Fitness/Exercise_Equipment +http://my.egroups.com/messages/prevention +http://pub4.ezboard.com/factiveprodiscussioncommunityactivitiesquestions.showMessage?topicID=12.topic +http://www.look4cranes.com/catalog/AUCTIONRESULT/AGGREGATE+-+CONVEYOR+%2F+FEEDER+%2F+STACKER/POWERSCREEN/ +http://www.fogdog.com/cedroID/ssd3040183344300/cgi-bin/MyFogdog +http://www.fogdog.com/cedroID/ssd3040183344300/nav/products/featured_brands/3b/gloves_mittens/ +http://www.houses-apartment-listings.com/Washington/city_search_criteria.asp?state=WA&City=CONCONULLY +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/c23417.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x12810.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x14250.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x14507.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x15988.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x17214.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x18550.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x19113.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x1949.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x21473.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x31101.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x3585.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x44035.html +http://www.brunel.ac.uk/~ccusjpe/linux/howto/Consultants-HOWTO/x4711.html +http://www.online.kokusai.co.jp/Home/V0043638/wrd/G100/ +http://ftp.lip6.fr/pub5/FreeBSD/branches/-current/ports/print/ghostscript5/ +http://ftp.lip6.fr/pub5/FreeBSD/branches/-current/ports/print/texinfo/ +http://ftpsearch.belnet.be/mirrors/ftp.isc.org/pub/usenet/control/ats/?N=D +http://garbo.uwasa.fi/pub/linux/distributions/SuSE/7.0/dosutils/exceed/USER/HOSTEX/SCHEME/?D=A +http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/showNextUnseen/fol/100001/922702 +http://link.fastpartner.com/do/session/600391/vsid/1314/tid/1314/cid/134340/mid/1060/rid/1180/chid/1314/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/local/redirect.php +http://www.jamba.de/KNet/_KNet-wEF8j1-bGd-13cma/showInfo-datenschutz.de/node.0/cenvptf1i +http://www.jamba.de/KNet/_KNet-wEF8j1-bGd-13cmd/browse.de/node.0/cenv0b09a +http://www-usa6.cricket.org/link_to_database/PLAYERS/RSA/T/THOMPSON_DS_03003252/ +http://sunsite.org.uk/public/public/packages/WWW/emacs-w3/?S=A +http://www.excelsior.com.mx/9811/981129/buh25.html +http://www.anixter.nl/SBJEVE/170699-2155-01.html +http://innopac.lib.tsinghua.edu.cn:2082/search*chi/aBrooks,+Jane+B./abrooks+jane+b/-5,-1,0,B/browse +http://tour.stanford.edu/cgi/options.prl/95.70/gMcto +http://www.cksd.edgate.com/emeraldheightses/elections/students/the_parties/ +http://novel.hichinese.net/comment/comment.php?page=2091&action=write +http://205.161.150.96/cgi-bin/c2k/additem.html&item=204578 +http://www.nhic.or.kr/netbbs/Bbs.cgi/nhic31282/qry/zka/B2-kB2-m/pno/0/qqo/004A/qqatt/^ +http://scripts.infoart.ru/magazine/znamia/n4-20/shpakov.htm +http://excite.de/bildung/katalog/19909 +http://911codes.com/games/platform/n64/sect/div/cont/list_cheat/spray/y/id/0000009557/gid/0000003573/_cheats/_walkthroughs/_codes/_pc/_n64/_psx/_gameboy/_playstation/ +http://ftp.jp.debian.org/debian/dists/stable/main/source/web/?M=A +http://www.fogdog.com/cedroID/ssd3040183335913/nav/products/featured_brands/3c/all/ +http://his.luky.org/ML/linux-users.3/msg08073.html +http://yomiuri-1422.excite.co.jp/entertainment/animated_cartoon_comic/each_work_title/ha_line/ha +http://yomiuri-1422.excite.co.jp/entertainment/animated_cartoon_comic/each_work_title/ha_line/hu_he/berserk +http://library.cwu.edu/search/dWorld+War,+1914-1918+--+Diplomatic+history/dworld+war+1914+1918+diplomatic+history/-5,-1,0,B/exact&F=dworld+war+1914+1918+diplomatic+history&1,49 +http://www.utdallas.edu/dept/sci_ed/Caribbean/images/Jennifer%20Jordan/Antigua%20Mangrove/?N=D +http://www.baustoffhandel.de/service/faqs/faq-tapezieren.htm +http://muc-zvs-web1.goethe.de/ms/bud/film/un_f2.htm +http://www.online.kokusai.co.jp/Map/V0043636/wrd/G1000/map/sitemap.html +http://win.www.citycat.ru/funny/fido/2000_05/25.html +http://nathanael.upi.jussieu.fr/tele6.nsf/autres+centres+de+formations!OpenPage&ExpandSection=9,1,7,13,15,6 +http://yp.gates96.com/11/79/50/1.html +http://yp.gates96.com/11/79/50/92.html +http://yp.gates96.com/11/79/52/64.html +http://yp.gates96.com/11/79/54/79.html +http://yp.gates96.com/11/79/54/81.html +http://yp.gates96.com/11/79/56/28.html +http://yp.gates96.com/11/79/56/30.html +http://yp.gates96.com/11/79/56/46.html +http://yp.gates96.com/11/79/56/83.html +http://yp.gates96.com/11/79/57/10.html +http://yp.gates96.com/11/79/57/33.html +http://yp.gates96.com/11/79/58/1.html +http://yp.gates96.com/11/79/58/48.html +http://yp.gates96.com/11/79/58/82.html +http://yp.gates96.com/11/79/59/62.html +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/ELINKEINO-+JA+YRITYSTOIMINTA/Matkailu+-+maantiede/matkailu/linja-autoliikenne/joukkoliikenne/aikataulut/ +http://cn.egroups.com/message/romtrade/3823 +http://www.idgnet.com/idgns/1999/07/16/SmallFrenchBusinessesMoveSlowlyTo.shtml +http://www-d0.fnal.gov/d0dist/dist/releases/psim01.01.00/Exceptions/?M=A +http://www.4positiveimages.com/4positiveimages/781560892/Catalog +http://dellnet.excite.fr/yellow_pages/annuaire/823 +http://ftp.chg.ru/pub/math/grace/MIRRORS +http://ftp.chg.ru/pub/math/grace/aux/ +http://legalminds.lp.findlaw.com/list/lawlibref-l/mail8.html +http://carriage.de/Schoner/modelle/models/Info-d/Sammlungen/ +http://chunma.yeungnam.ac.kr/~j4390214/경기상승.htm +http://members.tripod.co.jp/stpp/?M=A +http://map.ipc.co.jp/asp/onmap/connect/f-525598/g-28/ +http://www.fortunecity.com/business/lerner/101/form.html +http://www.sportskorea.net/BBS/Bbs/db/L019/act/new/bnum/000060/zka/6/o/6/drc/f +http://ftp.jp.debian.org/debian/dists/Debian2.2r0/main/binary-all/hamradio/?M=A +http://admin.afiliando.com/do/session/189476/vsid/1507/tid/1507/cid/23455/mid/1025/rid/1168/chid/1205/parser/yes/imref/eqqLmwlGltt5tkpHrYjLXofLklkKZljLkju5lZa5l0/url/http://www.submarino.com.mx/toy/home.asp +http://www.gasex.com/gay.male.erotica/penis.gay.twink.men.html +http://ftpsearch.belnet.be/mirrors/ftp.isc.org/pub/usenet/control/ak/?S=A +http://gb.toget.com.tw/intro/desktop_wallpaper/desktop_wallpaper_idol/20000417_7747_dl.html +http://yp.gates96.com/13/50/50/27.html +http://yp.gates96.com/13/50/52/20.html +http://yp.gates96.com/13/50/52/31.html +http://yp.gates96.com/13/50/52/44.html +http://yp.gates96.com/13/50/53/33.html +http://yp.gates96.com/13/50/53/45.html +http://yp.gates96.com/13/50/53/72.html +http://yp.gates96.com/13/50/54/34.html +http://yp.gates96.com/13/50/54/62.html +http://yp.gates96.com/13/50/54/83.html +http://yp.gates96.com/13/50/54/84.html +http://yp.gates96.com/13/50/55/5.html +http://yp.gates96.com/13/50/55/61.html +http://yp.gates96.com/13/50/55/75.html +http://yp.gates96.com/13/50/56/0.html +http://yp.gates96.com/13/50/56/15.html +http://yp.gates96.com/13/50/56/21.html +http://yp.gates96.com/13/50/56/29.html +http://yp.gates96.com/13/50/57/2.html +http://yp.gates96.com/13/50/57/54.html +http://yp.gates96.com/13/50/58/9.html +http://yp.gates96.com/13/50/58/34.html +http://yp.gates96.com/13/50/59/64.html +http://yp.gates96.com/13/50/59/70.html +http://yp.gates96.com/13/50/59/75.html +http://yp.gates96.com/13/50/59/85.html +http://www.ilmessaggero.it/hermes/19990419/07_MARCHE/40/AGRI.htm +http://www.ilmessaggero.it/hermes/19990419/07_MARCHE/40/NERA.htm +http://amigos.com/cgi-bin/w3com/pws/ffe/IURImAxosglBgN4t3Iz538S9DOsFp6mHl6tpYJehgGibFrnWNcTM3WIsDckFomPqZ-JB8f_Qj8Aua4sE4AFvcFyidtj2iI6k1zPchuFbLwWMCo3hr8eXPNuxbHPQdRvo8J246667 +http://amigos.com/cgi-bin/w3com/pws/ffe/F3hIBiydr9mPRNSqk-dll3MTqIZCaRN3wRH0-H7o4qF0vlfPBXUV-Vhn028iva56e-GCSyYZKBQxuCJO8Y2JF25fVTkPHzFtrNMoOVhEp2n7Y11PhN9pvFNyqgssdZW8Eay0XJsP0vuD4oCbmJVx +http://home.digitalcity.com/boston/sportsguy/main.dci?page=curse2 +http://ftpsearch.belnet.be/mirror/ftp.funet.fi/pub/Linux/doc/logos/.cap/?S=A +http://ftpsearch.belnet.be/mirror/ftp.funet.fi/pub/Linux/doc/logos/.cap/?D=A +http://my.netian.com/~52tour/kyung1.html +http://aol.weather.com/weather/radar/single_site/us_ny_allegany.html +http://www-usa16.cricket.org/link_to_database/GROUNDS/RSA/CENTURION/ +http://polygraph.ircache.net:8181/prodev/career/http_-2www.getstats.com/http_-2www.shindex.com/in_dex/in_dex.html +http://polygraph.ircache.net:8181/prodev/career/http_-2www.getstats.com/http_-2www.microsoft.com/msoffice +http://www.5a8.com/book/wg/cp/p/puge/zhizhunv/005.htm +http://tukids.raha.com/crafts/preview/52044.html +http://tukids.raha.com/crafts/preview/52401.html +http://buc.co.kr/www.ecs.com.tw/ +http://wap.jamba.de/KNet/_KNet-EDS8j1-KHd-13gbq/showInfo-werbung.de/node.0/cde7f1uou +http://www.launch.com/music/songpage/1,4425,322514,00.html +http://www.emerchandise.com/browse/BUFFYTHEVAMP/CAP/b.TV%20BUFFYTHEVAMP/s.NGdTZGLC +http://www.emerchandise.com/browse/BUFFYTHEVAMP/STICKER/b.TV%20BUFFYTHEVAMP/s.NGdTZGLC +http://www.emerchandise.com/help_security/b.TV%20BUFFYTHEVAMP/s.NGdTZGLC +http://yp.gates96.com/14/70/50/9.html +http://yp.gates96.com/14/70/50/23.html +http://yp.gates96.com/14/70/50/24.html +http://yp.gates96.com/14/70/50/40.html +http://yp.gates96.com/14/70/50/47.html +http://yp.gates96.com/14/70/50/79.html +http://yp.gates96.com/14/70/50/89.html +http://yp.gates96.com/14/70/51/83.html +http://yp.gates96.com/14/70/52/98.html +http://yp.gates96.com/14/70/53/46.html +http://yp.gates96.com/14/70/54/4.html +http://yp.gates96.com/14/70/54/24.html +http://yp.gates96.com/14/70/54/97.html +http://yp.gates96.com/14/70/55/51.html +http://yp.gates96.com/14/70/57/51.html +http://yp.gates96.com/14/70/58/3.html +http://yp.gates96.com/14/70/58/84.html +http://yp.gates96.com/14/70/59/0.html +http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bp20046027/-5,-1,0,B/frameset&F=bp20046031&1,1 +http://www.free-phone.com/q/001p/ppc2/KtIYye9a8Pw.htm +http://www.1stemlm.com/q/001p/ppc2/7kwUxQYfGMk.htm +http://sports.excite.com/ten/grand_german +http://www.omniseek.com/dir/Arts+%26+Humanities/Fine+Arts/Ceramics/Organizations/Australia/ +http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/dec-axpvms-vms712_usb-v0100--4.pcsi-dcx_axpexe +http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/vms712_acrtl-v0100.README +http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/vms712_acrtl-v0100.html +http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/vms712_dqconfig-v0200.README +http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/vms712_ds20e-v0100.html +http://ftp1.service.digital.com/patches/public/vms/axp/v7.1-2/vms712_shadowing-v0300.CVRLET_TXT +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=barrissait&l=fr +http://dk.egroups.com/message/M-1911/4394 +http://www.netsh.com.cn/wwwboardm/526/messages/2116.html +http://www.netsh.com.cn/wwwboardm/526/messages/2270.html +http://www.netsh.com.cn/wwwboardm/526/messages/773.html +http://www.netsh.com.cn/wwwboardm/526/messages/2058.html +http://www.netsh.com.cn/wwwboardm/526/messages/2329.html +http://www.netsh.com.cn/wwwboardm/526/messages/1813.html +http://linux.softhouse.com.cn/linux/knowledge/tech/HOWTO/Java-CGI-HOWTO-7.html +http://news.novgorod.ru/news/2000/9/22/2/12 +http://news.novgorod.ru/news/2000/9/24/2/12 +http://homepage1.nifty.com/sigenyan/nikki9.htm +http://perso.club-internet.fr/guige/ncpc78.htm +http://www.vr-homes.com/usa/California/Cities/Victorville/Travel/Maps_Images/ +http://www.incestpornstories.com/cum-sex-pics/underagecoed/spankingsweating/hardendurance.html +http://www.freeforums.com/forums/Hardball/000008-000007.asp +http://www.freeforums.com/forums/Hardball/000005-000001.asp +http://www.freeforums.com/forums/Hardball/000004-000001.asp +http://rex.skyline.net/html/Internet_Chat_Sites.html?315,computers,video,internet,computers +http://rex.skyline.net/html/Computers_-_Hardware.html?14,computers,video,internet,computers +http://194.128.65.4/pa/cm199899/cmhansrd/vo990216/text/90216w20.htm +http://pub14.ezboard.com/fyamguyskoflastblade.showMessage?topicID=3.topic +http://plant.reedexpo.ca/www.partnership.ca/?S=A +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=168&discrim=109,5,168 +http://www.aelita.net/products/~archive/Download_redirect/solutions/solutions/services/products/default.htm +http://www.jpc-music.com/7041801.htm +http://home.c2i.net/entreprenor/java/ra.html +http://gxschool.beelink.com.cn/mid_edu/midschool/geography3/t4cd7z/4d7z3.3_1.htm +http://ricoh.co.jp/SHOGI/emate/basic/mate3003a.html +http://www.diogenes.ch/4DACTION/web_rd_aut_frlist_az/ID=483385&chr=K +http://www.ebigchina.com/msg_post.phtml?cu=1003 +http://www.bemi-immobilien.de/allgemeine-ib/startseite/Gemeinsam/erreichenPartner/Gemeinsam/versicherungen/lebensversicherung/Gemeinsam/immolink/Gemeinsam/MarketingStrategie/Gemeinsam/Inserieren/onlineInserieren.htm +http://ftp.tku.edu.tw/OS/Linux/distributions/RedHat/rawhide/i386/doc/rhinst/stylesheet-images/?S=A +http://www.egroups.com/message/kicken/284 +http://www.guangmingdaily.com.cn/0_gm/1999/12/19991222/big5/gm^18278^2^GM2-2216.htm +http://brightnet.pda.tucows.com/www.psionsite.rcsed.ac.uk/ +http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=9,22,1,11 +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=durereste&l=it +http://click-to.tell-a-friend.boardhost.com/tell-a-friend-confirm.cgi?ylihilseen&msg=25 +http://www.gbgm-umc.org/EllisvilleMO/10-04-00.pdf +http://www.marketingtool.com/contribute/webfirm/b.435.r.2626.g.4134.html +http://www.chaos.dk/sexriddle/h/a/w/l/ +http://www.chaos.dk/sexriddle/h/a/w/t/ +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+9,5-0,3+( +http://www.guba.net/101/136/125E/index-4.phtml +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+9,5-0,3+21,0 +http://www.guba.net/101/136/125E/index-7.phtml +http://www.guba.net/101/136/125E/index-15.phtml +http://ftpsearch.belnet.be/ftp/mirror2/ftp.cert.dfn.de/pub/vendor/sun/security-alert/security-alert-108.txt +http://ftpsearch.belnet.be/ftp/mirror2/ftp.cert.dfn.de/pub/vendor/sun/security-alert/security-alert-170.txt +http://www.tente.de/us/produkte/rubriksuche/ad000000699.htm +http://www.angelfire.com/ky/kysweetpea/ +http://yp.gates96.com/7/69/60/1.html +http://www.amulation.com/md-l-archive/199908/frm00208.html +http://yp.gates96.com/7/69/60/4.html +http://yp.gates96.com/7/69/60/33.html +http://yp.gates96.com/7/69/60/49.html +http://yp.gates96.com/7/69/60/71.html +http://nanjingnews.jlonline.com/nanjingnews/njrb/20000226/04tiyu.htm +http://yp.gates96.com/7/69/61/44.html +http://yp.gates96.com/7/69/61/69.html +http://yp.gates96.com/7/69/61/82.html +http://yp.gates96.com/7/69/61/85.html +http://yp.gates96.com/7/69/62/4.html +http://yp.gates96.com/7/69/63/34.html +http://yp.gates96.com/7/69/63/48.html +http://yp.gates96.com/7/69/63/66.html +http://yp.gates96.com/7/69/64/22.html +http://www.bemi-immobilien.de/IIM-Teil/Startseite/Gemeinsam/MarketingStrategie/Gemeinsam/Inserieren/Startseite/Gemeinsam/versicherungen/unfall/Gemeinsam/3d-service/info.htm +http://yp.gates96.com/7/69/64/26.html +http://yp.gates96.com/7/69/65/89.html +http://yp.gates96.com/7/69/67/11.html +http://yp.gates96.com/7/69/67/28.html +http://yp.gates96.com/7/69/67/33.html +http://yp.gates96.com/7/69/67/70.html +http://yp.gates96.com/7/69/68/22.html +http://yp.gates96.com/7/69/68/72.html +http://yp.gates96.com/7/69/68/92.html +http://members.tripod.com/~katenleo/fading21.html +http://yp.gates96.com/7/69/69/6.html +http://members.tripod.com/~katenleo/fading26.html +http://yp.gates96.com/7/69/69/36.html +http://yp.gates96.com/7/69/69/91.html +http://yp.gates96.com/7/69/69/98.html +http://www.tribuneindia.com/98oct11/head1.htm +http://fi.egroups.com/message/internet-sig-announce/3 +http://info.verwaltung.uni-freiburg.de/doc/susehilf/pak/paket_inhalt_libxml.html +http://www.planetweb.com/cgi-bin/listmanager.pl/NETLINK-CUST/archives/1998Mar30-Apr05.archive/Date/article-23.html +http://www.maasvlakte-cam.nl/webcams/11/katowice__poland/2000/06/13/ +http://www.eveclub.com/cgi-bin/eveclub.front/972959521459/Home +http://totalsports.aol.com/stats/bbo/int/20000413/nor.at.lou.box.html +http://totalsports.aol.com/stats/bbo/int/20000413/ott.at.buf.game.html +http://fi.egroups.com/message/stccg-badlands/67 +http://www.fogdog.com/cedroID/ssd3040183315704/nav/stores/books_videos/ +http://xf-bbs.hb.cninfo.net/~socrates/sportold/images/football/_vti_cnf/ +http://cisc.tu-graz.ac.at/igi/lehre/semD_ss99/gruppe3/node10.html +http://in.egroups.com/message/sfconsim-l/8643 +http://ftp.cc.chuo-u.ac.jp/home/pub/lang/perl/CPAN/modules/by-authors/Karl_Glazebrook/ExtUtils-F77-1.13.readme +http://ftp.cc.chuo-u.ac.jp/home/pub/lang/perl/CPAN/modules/by-authors/Karl_Glazebrook/PGPLOT-2.17.readme +http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/wopwobaiu2243.html +http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/wopwobaiu2386.html +http://books.hyperlink.co.uk/bookinfo/Travel_Journal/0864427972 +http://dbc.copystar.com.tw/DelphiChat/200001/msg0650.htm +http://dbc.copystar.com.tw/DelphiChat/200001/msg0655.htm +http://dbc.copystar.com.tw/DelphiChat/200001/msg0666.htm +http://dbc.copystar.com.tw/DelphiChat/200001/msg0673.htm +http://dbc.copystar.com.tw/DelphiChat/200001/msg0681.htm +http://dbc.copystar.com.tw/DelphiChat/200001/msg0692.htm +http://www.expage.com/page/cavypigsponser +http://kernel2.adver.com.tw/Counter/log/kernel2.adver.com.tw/SaveCounter/2000-10-05/13/?S=A +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=210&discrim=214,253 +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=2&discrim=247,212,237 +http://wwwtios.cs.utwente.nl/archive/wilyfans/frm01740.html +http://z-06.land-sbg.gv.at/pressebuero/lpb/unserland/apr00/3.htm +http://z-06.land-sbg.gv.at/pressebuero/lpb/unserland/apr00/52.htm +http://gladstone.uoregon.edu/~sola/Stories/ +http://adetti.iscte.pt/RSI/HowTo/Java/jdk1.2.1/docs/guide/2d/api-jpeg/serialized-form.html +http://ocean.ntou.edu.tw/search*chi/aSloan,+Richard+P.,+jt.+ed./asloan+richard+p/-5,-1,0,E/frameset&F=asloan+irving+j&2,,0 +http://ttzcomputers.subportal.com/sn/Programming/C_and_C___Tools_and_Components/13286.html +http://ttzcomputers.subportal.com/sn/Programming/C_and_C___Tools_and_Components/1551.html +http://ftp.uni-stuttgart.de/pub/unix/tools/system/top/m/?N=D +http://no.egroups.com/message/romtrade/5216 +http://dk.egroups.com/message/Gunsmithing/80 +http://www.msb.malmo.se/search*swe/dMichelsen,+Hans/dmichelsen+hans/-5,-1,0,B/frameset&F=dmichels+robert&1,1 +http://solar.rtd.utk.edu/friends/news/omri/1998/05/980506I.html(opt,mozilla,pc,russian,koi8,default) +http://www.geocities.co.jp/HeartLand/6163/link8.htm +http://tucows.austria.com/sync95_size.html +http://tucows.austria.com/adnload/1082_30337.html +http://www.hotelboulevard.com/fr/paris/standard/html7752b1d358fd6459ebca66776e896614/sessionLang/ANG/prov/browse/cp/75015/resultatSearch.html +http://210.178.135.1/netbbs/Bbs.cgi/nhic30872/qry/zka/B2-kB2-o/pno/0/qqo/000A/qqatt/^ +http://210.178.135.1/netbbs/Bbs.cgi/nhic30872/new/pno/0/pno/0/qqo/000A +http://cometweb01.comet.co.uk/do!tid=20&rtid=2&vsid=700&session=132041&mid=1000&rid=1060&cid=37030&chid=1713&url=eqqLmwlGltt5tkZHljbLqkZHlkrHhlZHdfjKYfkLlkZ5ljjLboZLbplG5ubLZDXLZolLl3l5jbqLlci5XqVLkXsLkao4tloHbmlLoq5 +http://polygraph.ircache.net:8181/http_-2www.webtechs.com/html-val-svc/f-agents.html +http://www.linux.com/networking/network/development/communications/server/distro/ +http://www.linux.com/networking/network/development/communications/server/competition/ +http://www.linux.com/networking/network/development/communications/server/certification/ +http://www.linux.com/networking/network/development/communications/server/future/ +http://www.linux.com/networking/network/development/communications/server/Updates/ +http://people.freebsd.org/~knu/cgi-bin/cvsweb.cgi/ports/net/epic4/pkg/Attic/ +http://polygraph.ircache.net:8181/mo/mo_links/http_-2www.whowhere.com/tax_cuts.html +http://www.gov.ie/iveagh/angloirish/bloodysunday/summary4.htm +http://polygraph.ircache.net:8181/http_-2www.real-e-video.com/ftp_-2ftp.mpgn.com/Gaming/ADND/Worlds/BirthRight/MailingListArchive/Contents.htm +http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/showNextUnseen/fol/100001/1323398 +http://www.centc251.org/forums/aca-1/dispatch.cgi/isowg4/folderFrame/100008/0/def/1323639 +http://user.alpha.co.kr/~selly/profile/main2.htm +http://polygraph.ircache.net:8181/company/http_-2www.aaainvestments.com/http_-2triad.cyberserv.com/http_-2207.90.134.3/miami/ +http://ring.htcn.ne.jp/pub/FreeBSD/FreeBSD-current/ports/archivers/zip/ +http://www.medoc-ias.u-psud.fr:81/synoptic/gif/950902/?S=A +http://in.egroups.com/message/GQRP/975 +http://idgnow.uol.com.br/idgnow/pcnews/2000/07/0046 +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdebase/po/Attic/kdmconfig.pot?only_with_tag=beta1-0_2 +http://us.mandrakesoft.com/cgi-bin/cvsweb.cgi/kdebase/po/Attic/kwm.pot?only_with_tag=beta1-0_2 +http://lists.omnipotent.net/mysql/199912/msg02189.html +http://kyoto.cool.ne.jp/ryou_1125/lmax/list2.html +http://www.infodog.com/RESULTS/1998092302/1998092302800.HTM +http://www.infodog.com/RESULTS/1998092302/1998092302575.HTM +http://bedandbreakfast.com/bbc/p618230.asp +http://solaris.license.virginia.edu/os_product_patches/patches/5.5.1/103640-28/SUNWscpu/ +http://www.secinfo.com/d1Z36p.5n.htm +http://cn.egroups.com/messages/conscious_creation/2087 +http://www.brio.de/BRIO.catalog/39fdb4fb08541c02273fd472aa7806a2/UserTemplate/13 +http://www.chaos.dk/sexriddle/o/m/e/z/ +http://cgi.tbs.co.jp/cdtv/songdb/song1897-j.html +http://www.niwl.se/wais/new/12/12116.htm +http://bsdweb.pasta.cs.uit.no/bsdweb.cgi/~checkout~/pkgsrc/editors/vim-xaw/pkg/?sortby=log +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=boguerait&l=fr +http://www.medbulletin.com/scripts/medscape/jobsbystate.pl/diima00001/ND +http://ttz.soyou.edu.cn/tgyd/item/2000-05-31/3214.html +http://ttz.soyou.edu.cn/tgyd/item/2000-05-25/2973.html +http://ttz.soyou.edu.cn/tgyd/item/2000-05-23/2825.html +http://javatest.a-net.nl/servlet/pedit.Main/http://salon.com/tech/feature/2000/02/25/chatscan/ +http://javatest.a-net.nl/servlet/pedit.Main/http://www.wired.com/news/news/technology/story/20734.html +http://www.jps.net/fehlberg/diem9.html +http://chellobe.linux.tucows.com/x11html/adnload/9798_3876.html +http://chellobe.linux.tucows.com/x11html/preview/58190.html +http://internet.exit.de/akpolitik/Extern.htm +http://www.launch.com/music/albumpage/pvn_content/0,5258,163242_track,00.html +http://merumo.ne.jp/backno/i/00005163/20001001060103_024859.html +http://ftpsearch.belnet.be/mirrors/ftp.isc.org/pub/usenet/control/bc/?N=D +http://www-lehre.inf.uos.de/manuals/jdk1.2/docs/api/javax/swing/text/html/parser/class-use/Element.html +http://ftp.tku.edu.tw/OS/FreeBSD/ports/biology/deft/distinfo +http://javatest.a-net.nl/servlet/pedit.Main/http://www.cavejunction.com/phones/gower1.html +http://javatest.a-net.nl/servlet/pedit.Main/http://www.cavejunction.com/phones/contel1.html +http://www.allkorea.co.jp/cgi-bin/allkorea.front/972959966349/Catalog/1000002 +http://yp.gates96.com/5/82/41/1.html +http://yp.gates96.com/5/82/41/52.html +http://yp.gates96.com/5/82/41/59.html +http://yp.gates96.com/5/82/42/40.html +http://yp.gates96.com/5/82/42/73.html +http://yp.gates96.com/5/82/43/4.html +http://yp.gates96.com/5/82/43/20.html +http://yp.gates96.com/5/82/44/60.html +http://yp.gates96.com/5/82/44/95.html +http://yp.gates96.com/5/82/45/36.html +http://yp.gates96.com/5/82/45/43.html +http://yp.gates96.com/5/82/45/90.html +http://yp.gates96.com/5/82/46/37.html +http://yp.gates96.com/5/82/46/83.html +http://yp.gates96.com/5/82/47/22.html +http://yp.gates96.com/5/82/47/53.html +http://yp.gates96.com/5/82/48/8.html +http://yp.gates96.com/5/82/48/23.html +http://yp.gates96.com/5/82/48/41.html +http://yp.gates96.com/5/82/48/76.html +http://yp.gates96.com/5/82/49/5.html +http://yp.gates96.com/5/82/49/22.html +http://yp.gates96.com/5/82/49/37.html +http://yp.gates96.com/5/82/49/39.html +http://yp.gates96.com/5/82/49/65.html +http://yp.gates96.com/5/82/49/90.html +http://www.mirror.kiev.ua:8084/paper/1998/35/1251/power.htm +http://www.science.uva.nl/pub/NetBSD/NetBSD-current/pkgsrc/textproc/html/Makefile +http://www.fiss.at/1Root/Kontinent/6/Staat/7/Bundesland/16/Ort/708/Infrastruktur/7435/Homepage/homepage...1.html +http://linux.tnc.edu.tw/CPAN/authors/id/C/CH/CHOGAN/Apache-SetWWWTheme-1.02.readme +http://linux.tnc.edu.tw/CPAN/authors/id/C/CH/CHOGAN/Apache-SetWWWTheme-1.04.readme +http://linux.tnc.edu.tw/CPAN/authors/id/C/CH/CHOGAN/Apache-SetWWWTheme-1.05.readme +http://wufs.wustl.edu/vlander/vl_0002/browse/html/B0XX/22b090b4.htm +http://www.dnet.org/My_Locality/View_Statement.dnet/OH/43230-1863&SubjectItemID=6406&IssueID=47541&ElectionActivityID=4443&SubjectHolder=3462&type=Office&debate=yes +http://members.tripod.co.jp/suguruE/_private/ +http://members.tripod.lycos.nl/Kreeklaan/id19_cf.htm +http://forums.multimania.fr/general/login/login.phtml?_login=%2Flire%2Fjeuxvideospro%2Findex.phtml%3Fcollapse%3D1 +http://excite.de.netscape.com/jobs/katalog/30434 +http://excite.de.netscape.com/jobs/katalog/27370 +http://excite.de.netscape.com/jobs/katalog/127 +http://yp.gates96.com/2/54/20/79.html +http://yp.gates96.com/2/54/21/27.html +http://yp.gates96.com/2/54/22/14.html +http://yp.gates96.com/2/54/22/48.html +http://yp.gates96.com/2/54/22/78.html +http://yp.gates96.com/2/54/23/20.html +http://yp.gates96.com/2/54/23/62.html +http://yp.gates96.com/2/54/23/69.html +http://yp.gates96.com/2/54/24/1.html +http://yp.gates96.com/2/54/24/61.html +http://yp.gates96.com/2/54/24/95.html +http://yp.gates96.com/2/54/25/2.html +http://yp.gates96.com/2/54/25/16.html +http://yp.gates96.com/2/54/25/53.html +http://yp.gates96.com/2/54/25/67.html +http://yp.gates96.com/2/54/25/94.html +http://yp.gates96.com/2/54/26/3.html +http://yp.gates96.com/2/54/26/30.html +http://yp.gates96.com/2/54/26/65.html +http://yp.gates96.com/2/54/27/31.html +http://yp.gates96.com/2/54/27/41.html +http://yp.gates96.com/2/54/27/53.html +http://yp.gates96.com/2/54/27/71.html +http://yp.gates96.com/2/54/27/79.html +http://yp.gates96.com/2/54/27/80.html +http://yp.gates96.com/2/54/28/13.html +http://yp.gates96.com/2/54/28/14.html +http://yp.gates96.com/2/54/28/24.html +http://yp.gates96.com/2/54/28/34.html +http://yp.gates96.com/2/54/28/96.html +http://yp.gates96.com/2/54/29/49.html +http://ftp.sunet.se/pub/NT/mirror-microsoft/KB/Q134/3/40.TXT +http://members.tripod.com/joellogan/_cranedisc/000001d9.htm +http://members.tripod.com/joellogan/_cranedisc/000001cd.htm +http://www.ualberta.ca/CNS/RESEARCH/Software/SAS/vms/z-inf-zd.htm +http://www1.galaxy.com/galaxy/Leisure-and-Recreation/Games/Computer-Games/Titles/Virtual-Reality/Golf.html +http://www1.galaxy.com/galaxy/Leisure-and-Recreation/Games/Computer-Games/Titles/Virtual-Reality/Red-Planet.html +http://www.uni-duesseldorf.de/ftp/ftp/software/opt/zlib-1.1.2/?N=D +http://acbanks.know-where.com/acbanks/cgi/selection?place=Cavecreek&state=AZ +http://yp.gates96.com/10/26/70/49.html +http://yp.gates96.com/10/26/70/83.html +http://yp.gates96.com/10/26/72/40.html +http://yp.gates96.com/10/26/74/89.html +http://yp.gates96.com/10/26/75/15.html +http://yp.gates96.com/10/26/75/19.html +http://yp.gates96.com/10/26/76/87.html +http://yp.gates96.com/10/26/78/18.html +http://yp.gates96.com/10/26/78/76.html +http://yp.gates96.com/10/26/78/78.html +http://yp.gates96.com/10/26/78/81.html +http://cpan.nitco.com/modules/by-module/Devel/ADESC/Pod-DocBook-0.03.readme +http://www2.el-mundo.es/nuevaeconomia/2000/NE047/NE047-03b.html +http://www.familyeducation.com/whatworks/inappr_material/entry/1,2549,1-10119-1948-3469,00.html +http://ftp.nodomainname.net/pub/linux/daemons/raid/beta/ +http://192.80.57.161/corp/press/vannet.html +http://digilander.iol.it/mirkodeli/Stagioni/CI6_index.html +http://www.world-of-webs.de/magdeburg-in-bildern/_inhalt/_statnif/rechts/035.htm +http://ftpsearch.belnet.be/mirrors/src.doc.ic.ac.uk/usenet/usenet-by-hierarchy/rec/travel/?D=A +http://mirrortucows.technet.it/winme/netmiscme_rating.html +http://my.egroups.com/message/imperiumlarp/3148 +http://ep.com/js/about/c7857/b0/34551.html +http://webcrawler-sports.excite.com/ncaab/matchup/pafmax/ +http://www2.dbusiness.com/Quotes/1,1125,MSP_CORE,00.html?Ticker=CORE +http://tucows.wlink.com.np/regist95_size.html +http://www.babyheirlooms.com/catalog/htmlos.cat/041162.1.5960744054 +http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/71113000008423000000947720000021551/Labels.wo/168310000011551/1.0.1/3/Webobjects1 +http://www.v2music.com/Scripts/WebObjects-ISAPI.dll/V2_New_Publisher.woa/71113000008423000000947720000021551/Labels.wo/168310000011551/1.1.3.0.0/3/Webobjects1 +http://www.adcentral.com/cgi-bin/w3com/pws/adsites/vNhIXgVh_sji0rjcKc_GbuSlgBaEnCmKXU4ARmeefaqktCE3zwLsoXKDK_dlzoBzk2Ygr2cAuqN51PKOA0JxjzLEpPe-kic9TtvUJMbXG9Dlw8SggmHugQpwzjo-NiuofbUz4obq +http://ring.omp.ad.jp/archives/NetBSD/NetBSD-current/src/distrib/i386/floppies/ramdisk-big/Makefile +http://unofficial.capital.edu/students/alittle/ +http://213.36.119.69/do/session/153005/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/reserver/promotions/promo9.html +http://213.36.119.69/do/session/153005/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/GB_EN/ +http://www.riello-hamburg.de/mSerieRSBLU_130_465kw.htm +http://tucows.knoware.nl/winnt/filesplitnt_license.html +http://www.kaos.dk/sex-riddle/k/a/k/i/n/h/b/b/ +http://www.kaos.dk/sex-riddle/k/a/k/i/n/h/b/c/ +http://caller-times.com/1999/july/13/today/national/3143.html +http://news.fm365.com/jiaoyu/20000804/113896.htm +http://variety.studiostore.com/browse/ILOVELUCY/CAP/b.FAVORITES%20NOSTALGI%20CLASTV%20ILOVELUCY/s.qyPsT2fz +http://www.ferien-immobilien.de/bayern/ingolstadt/Verkauf/Gemeinsam/Immolink/3d-service/Private-IB/Startseite/Gemeinsam/vertriebspartner.htm +http://jefferson.village.virginia.edu/wax/japanese/0front/cd/1/1a2a9a2.html +http://space.tin.it/scuola/ermenegh/thewall/il2.htm +http://www.maasvlakte-cam.nl/webcams/17/kremlin__moscou__russia/2000/02/29/?D=A +http://pub17.ezboard.com/fecilordsoflightgeneral.showMessage?topicID=211.topic +http://pub17.ezboard.com/fecilordsoflightgeneral.showMessage?topicID=214.topic +http://pub17.ezboard.com/fecilordsoflightgeneral.showMessage?topicID=210.topic +http://www.kaos.dk/sexriddle/x/u/e/s/p/ +http://www.kaos.dk/sexriddle/x/u/e/s/q/ +http://amc.hollywood.com/maltin/k/kellysheroes-1970.htm +http://amc.hollywood.com/maltin/k/kidsarealrightthe-1979.htm +http://amc.hollywood.com/maltin/k/killingofsistergeorgethe-1968.htm +http://amc.hollywood.com/maltin/k/kingandcountry-1964.htm +http://amc.hollywood.com/maltin/k/kinglear-1987.htm +http://amc.hollywood.com/maltin/k/kingofthezombies-1941.htm +http://amc.hollywood.com/maltin/k/kingqueenknave-1972.htm +http://amc.hollywood.com/maltin/k/kissthe-1988.htm +http://www.egroups.com/login.cgi?login_target=%2Fgroup%2Ft-ida +http://polygraph.ircache.net:8181/faculty/http_-2www.stopwaste.org/freecontent.html +http://kutschen.de/Schoner/literature/Literatur/models/collections/ +http://www.incestpornstories.com/cum-sex-pics/anal-sexone-night-stand/big-bonedpleasantly-plump/smallwomen/{hardcorelink} +http://www.nytimes.com/library/financial/102897market-turmoil.html +http://polygraph.ircache.net:8181/services/define/http_-2www.microsoft.com/ie/http_-2www.ci.alameda.ca.us/main_left.html +http://polygraph.ircache.net:8181/services/define/http_-2www.microsoft.com/ie/http_-2www.ci.alameda.ca.us/dream.htm +http://www.chiayi.gob.tw/ +http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d77/b77,c,4d,51,51,df1,df1,,4e,2b62,4d,4e,2b62,, +http://citeseer.nj.nec.com/cidcontext/6361 +http://citeseer.nj.nec.com/cidcontext/6456 +http://utenti.tripod.it/Psychozine/Grunge/Creed_MyOwnPrison.htm +http://tucows.multiweb.net/winme/adnload/138210_30315.html +http://tucows.multiweb.net/winme/adnload/138190_29551.html +http://tucows.multiweb.net/winme/adnload/138218_29576.html +http://tucows.multiweb.net/winme/preview/138219.html +http://playsky.home.chinaren.com/star_region/11.htm +http://tucows.phnet.fi/winme/adnload/137614_29054.html +http://www.fortunecity.com/millennium/blyton/118/www.bih.net.ba/~sda +http://www11.informatik.tu-muenchen.de/lehre/lectures/ws2000-01/hypermedia/extension/html-kurz/hm2.2.4.2-navigation.html +http://ads.puntopartenza.com/cgi-bin/redirect.cgi/31033737 +http://www.eud.com/1997/03/20/20324A.shtml +http://ftp.net.uni-c.dk/pub/linux/mandrake/i586/Mandrake/mdkinst/usr/share/locale/gl/?N=D +http://no.sport.yahoo.com/s/snowboard-1.html +http://www.egroups.com/login.cgi?login_target=%2Fmessages%2Fshamanism%2F1311 +http://yp.gates96.com/5/82/70/13.html +http://yp.gates96.com/5/82/70/74.html +http://yp.gates96.com/5/82/71/30.html +http://yp.gates96.com/5/82/71/44.html +http://yp.gates96.com/5/82/72/22.html +http://yp.gates96.com/5/82/72/72.html +http://yp.gates96.com/5/82/72/88.html +http://yp.gates96.com/5/82/73/60.html +http://yp.gates96.com/5/82/73/79.html +http://yp.gates96.com/5/82/74/21.html +http://yp.gates96.com/5/82/74/59.html +http://yp.gates96.com/5/82/74/62.html +http://yp.gates96.com/5/82/74/75.html +http://yp.gates96.com/5/82/74/78.html +http://yp.gates96.com/5/82/75/30.html +http://yp.gates96.com/5/82/75/32.html +http://yp.gates96.com/5/82/75/82.html +http://yp.gates96.com/5/82/76/16.html +http://yp.gates96.com/5/82/76/43.html +http://yp.gates96.com/5/82/76/72.html +http://yp.gates96.com/5/82/77/48.html +http://yp.gates96.com/5/82/77/99.html +http://yp.gates96.com/5/82/78/73.html +http://yp.gates96.com/5/82/79/28.html +http://yp.gates96.com/5/82/79/70.html +http://yp.gates96.com/5/82/79/83.html +http://polygraph.ircache.net:8181/http_-2www.microsoft.com/ie/http_-2www.petrophysics.com/http_-2www.uio.no/~thomas/lists/info.html +http://www.munster-express.ie/000623/sports1.htm +http://cisne.sim.ucm.es/search*spi/aThiollier,+FranÃÂçois-JoÃÂël,+int./athiollier+francois+joel+int/-5,-1,0,B/marc&F=athion+soriano+molla+dolores&2,,2 +http://www.zjdaily.com.cn/gb/2000/10/05/zjrb0625/guoji/6.htm +http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceStoreCategories-BBC70A38_9815_E7A26CDF19A4AB167DD4B69EFB5B17FC +http://commerce.was-inc.com/cgi-bin/abtwsam.dll/LbkWebCommerceUserProfile-BBC70A38_9815_E7A26CDF19A4AB167DD4B69EFB5B17FC +http://www.shopworks.com/tools/index.cfm/action/search/userid/0003875B-2E5B-19FE-AF65010C0A0A8CF2 +http://www.doofpot.nl/~lists/bugtraq/October-99/frm00087.html +http://shop.citde.net/b79923.htm +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=divinizzarono&l=it +http://pub8.ezboard.com/fwrestlecarwwf.showAddReplyScreenFromWeb?topicID=38.topic +http://amrr.com/agents/contact.html?Agents_id=4046 +http://www.intellicast.com/LocalWeather/World/UnitedStates/Southeast/NorthCarolina/CarolinaBeach/RAINcast/d1_12/bannerAd.shtml +http://www.ferien-immobilien.de/schleswig-holstein/nordfriesland/Verkauf/Gemeinsam/versicherungen/gebaeude/Allgemeine-IB/IIM-Teil/Startseite/Gemeinsam/Inserieren/inserieren.htm +http://www.ferien-immobilien.de/schleswig-holstein/nordfriesland/Verkauf/Gemeinsam/versicherungen/gebaeude/Allgemeine-IB/IIM-Teil/Startseite/Gemeinsam/feedback.html +http://de.excite.com/jobs/katalog/10349 +http://pub16.ezboard.com/frealitycheck95307youadoreus.showAddReplyScreenFromWeb?topicID=33.topic +http://www.maas.ccr.it/cgi-win/hiweb.exe/a17/d2424/b77,e,4d,51,51,df1,df1,,978,,51,978,815,,51,815, +http://dk.egroups.com/message/noholdsbarred/2138 +http://kr.news.yahoo.com/headlines/so/20001029/hankook/2000102919513187338.html +http://www.buybuddy.com/sleuth/27/1/11002/508910/ +http://yp.gates96.com/13/95/50/10.html +http://yp.gates96.com/13/95/50/47.html +http://yp.gates96.com/13/95/51/16.html +http://yp.gates96.com/13/95/51/17.html +http://yp.gates96.com/13/95/51/21.html +http://yp.gates96.com/13/95/51/76.html +http://yp.gates96.com/13/95/53/5.html +http://yp.gates96.com/13/95/54/17.html +http://yp.gates96.com/13/95/54/44.html +http://yp.gates96.com/13/95/54/67.html +http://yp.gates96.com/13/95/54/80.html +http://yp.gates96.com/13/95/55/67.html +http://yp.gates96.com/13/95/56/15.html +http://yp.gates96.com/13/95/56/91.html +http://yp.gates96.com/13/95/57/9.html +http://yp.gates96.com/13/95/57/12.html +http://yp.gates96.com/13/95/57/24.html +http://yp.gates96.com/13/95/57/30.html +http://yp.gates96.com/13/95/57/46.html +http://yp.gates96.com/13/95/58/38.html +http://yp.gates96.com/13/95/58/52.html +http://yp.gates96.com/13/95/58/80.html +http://yp.gates96.com/13/95/59/40.html +http://yp.gates96.com/13/95/59/78.html +http://ftp.net.uni-c.dk/pub/linux/mandrake/i586/Mandrake/mdkinst/usr/share/locale/gv/?S=A +http://home.swipnet.se/~w-10458/sksida.htm +http://www.irishnews.com/k_archive/260799/nnews14.html +http://dennou-q.geo.kyushu-u.ac.jp/library/Linux/debian-jp/dists/potato-jp/contrib/binary-all/admin/?M=A +http://ayasii.virtualspace.net/html/1104/11041141_syuuei_yosimi008.htm +http://ayasii.virtualspace.net/html/1104/11041104_nakamura_yuma_2_027.htm +http://kikakusvr3.city.yokohama.jp/yhspot/ysc/prelaunch.html +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=0,1-20,0-9,1-9,2 +http://209.52.189.2/discussion.cfm/disco_music/7738/79749 +http://www.du-et.net/cgi/mail.cgi?NickName=coota +http://ustlib.ust.hk/search*chi/a%7B214c7d%7D%7B213837%7D%7B213c44%7D%7B213779%7D%7B214267%7D%7B21586d%7D%7B21515b%7D%7B21517c%7D%7B213966%7D/a{214c7d}{213837}{213c44}{213779}{214267}{21586d}{21515b}{21517c}{213966}/7,-1,0,B/browse +http://user.alpha.co.kr/~backspin/CGI-BIN/upload/files/ +http://194.174.50.23/cgi-bin/FisRun/InsertExhibitorIntoNotebook/1/interpack99/e/1217 +http://www.paxcapital.com/news/datacenter/200010/27/20001027180508_01.shtml +http://www.paxcapital.com/news/datacenter/200010/27/20001027175828_07.shtml +http://www.paxcapital.com/news/datacenter/200010/27/20001027173309_53.shtml +http://www.paxcapital.com/news/datacenter/200010/27/20001027165004_52.shtml +http://genforum.genealogy.com/cgi-bin/print.cgi?lantz::325.html +http://mirror.cc.utsunomiya-u.ac.jp/mirror/FreeBSD/ports/alpha/packages-current/x11-toolkits/?D=A +http://hotop.on.net.cn/diguo/club/disp.asp?owner=A205&ID=914 +http://www.babyheirlooms.com/catalog/htmlos.cat/041137.1.3501106310 +http://debian.linux.org.tw/debian/dists/frozen/non-free/binary-m68k/mail/?N=D +http://cafe5.daum.net/Cafe-bin/Cafe.cgi/member?cafe=LOTTEcleaning +http://www-d0.fnal.gov/cgi-bin/cvsweb.cgi/root_gui/data/?sortby=date +http://www.concentric.net/~Psaros/DbzUncensored/editorial/edit06-07-98.html +http://www.jobvillage.com/channel/jobs/travel/travel_guide/b.4897.g.5093.html +http://www.jobvillage.com/channel/jobs/travel/travel_guide/b.4897.g.5070.html +http://www.cricket.org/link_to_database/ARCHIVE/1999/OTHERS+ICC/NL_LOCAL/EERSTEKL/VCC_ASIAN-SHAH_EERSTEKL_16MAY1999.html +http://health.phinfo.sc.cn/navigator/illness_treatment/diseases_conditions/bone_diseases/spinal_column_injury/default.htm +http://cn.egroups.com/message/dfwscan/1412 +http://www.babyheirlooms.com/catalog/htmlos.cat/001255.1.1999922108 +http://ibm1.cicrp.jussieu.fr/ibmc/classref/ref/UFullStopNumber_DSC.htm +http://pda.tucows.fi/palm/adnload/33651_21862.html +http://www.fogdog.com/cedroID/ssd3040183330232/nav/products/nhl/chicago_blackhawks/fan/gender/fashion_polo_shirts/ +http://www.fogdog.com/cedroID/ssd3040183330232/nav/products/nhl/chicago_blackhawks/fan/gender/nylon_jackets/ +http://www.5a8.com/book/wg/zpj/d/delaisai/mgbj/004.htm +http://www.5a8.com/book/wg/zpj/d/delaisai/mgbj/050.htm +http://jars.developer.com//classes/jresout.cgi?resource=1133 +http://dwp.bigplanet.com/billbritton/files/edit.nhtml +http://members.tripod.co.jp/snow4/?D=A +http://www.lanoticia.com.ni/cronologico/2000/julio/15sabado/capital/capital5.html +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1996/4/0/870960/ +http://mayu.sourceforge.net/cgi-bin/nph-ml.cgi/000/http/www.geocrawler.com/archives/3/151/1996/4/0/870950/ +http://ftp.ccu.edu.tw/pub/packages/dns/bind/src/8.1.1/ +http://www.chez.com/photographies/photos/paysage/page8.htm +http://www.ayto-malaga.es/Organismos/Urbanismo/PGMOM/Hojas/calificacion/3/47/34734.htm +http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=3,24,5,18 +http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=9,24,5,18 +http://variety.studiostore.com/browse/STARWARSTRIL/PHOTO/b.MOVIES%20STARWARSSAGA%20STARWARSTRIL/s.5FhZToe4 +http://www.stud.ntnu.no/~kjonigse/pod/ +http://eastday.com/epublish/gb/paper10/20001025/class001000011/hwz225792.htm +http://eastday.com/epublish/gb/paper10/20001025/class001000011/hwz225253.htm +http://www.jamba.de/KNet/_KNet-KdS8j1-IHd-13g8y/browse.de/node.0/cergpnwyt +http://www.la-verdad.com/pg000828/suscr/primera.htm +http://www.centc251.org/forums/aca-1/dispatch.cgi/hsi/listUnseen/fol/100020/20,0/1338881 +http://ftp.du.se/disk4/FreeBSD/ports/ports/japanese/libicq/pkg-comment +http://www.geocities.com/SunsetStrip/Towers/2395/ +http://www.geocities.com/joanna_luo +http://www.geocities.com/eric_wang_tafe +http://www.geocities.com/shsugiharto +http://wynnsystems.com/79I_5ase/seek/modifyUser.html +http://www.uk.cricket.org/link_to_database/INTERACTIVE/REVIEWS/BOOKS/barry14.html +http://perso.wanadoo.fr/alain.falgas/poesie1.htm +http://www.linux.com/networking/network/windows_nt/support/tools/SAP/ +http://www.rdnet.nl/provstaten1999/491ps.html +http://www.thisislancashire.co.uk/lancashire/archive/1998/03/19/FEATURES3VQ.html +http://myhome.naver.com/myclass46 +http://www.bride.ru/htcgi/ladies/in-26-30/index3.html +http://www.internet-verzeichnis.de/branchen/schuhreparaturen/nordrhein-westfalen/ +http://dk.egroups.com/post/SonyMavica?act=reply&messageNum=3370 +http://www.sneezy.org/Databases/Composers/Instrumentation/008889.html +http://www.sneezy.org/Databases/Composers/Instrumentation/009161.html +http://fatema2.math.nat.tu-bs.de/doc/sdb/de/html/keylist.LARGEEBDA.html +http://ssb.no/kommuner/hoyre_side.cgi?region=1931 +http://www.egroups.com/subscribe/mentemalata +http://www.debian.org.cn/Bugs/db/67/67056-b.html +http://dk.egroups.com/message/ssrdistribution/775?source=1 +http://link.fastpartner.com/do/session/600429/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/shopnett.php +http://ftp.uk.debian.org/debian/dists/stable/main/binary-arm/text/?D=A +http://www.bemi-immobilien.de/IIM-Teil/Startseite/Top-Darlehens-Konditionen/Gemeinsam/3d-service/Startseite/Gemeinsam/erreichenPartner/Top-Darlehens-Konditionen/anforderungsformular.htm +http://www.fujian-window.com/Fujian_w/news/mdrb/000816t/1_4.html +http://scholar.lib.vt.edu/VA-news/WDBJ-7/script_archives/98/0798/070498/?D=A +http://polygraph.ircache.net:8181/services/define/html/President.asp +http://old-maps.co.uk/10lancs191/HTML/nav_19034001g.htm +http://www.hanter21.co.kr/NetBBS/Bbs.dll/prdata/lst/qqa/f/qqo/000D/zka/B2-kB2-r +http://w3.webtourist.net/travel/europe/italy/milan/quarkallsuites.htm +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,5+0,0-9,6-0,1 +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=brillantant&l=fr +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=brillantais&l=fr +http://www.mathquest.com/~sarah/HTMLthreads/geopre.descriptions.html +http://www.retrobytes.org/classiccmp/9706/msg00827.html +http://www.retrobytes.org/classiccmp/9706/msg01408.html +http://www.rdnet.nl/provstaten1999/552ps.html +http://retailer.gocollect.com/do/session/1912828/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/checkout/shopping_cart.asp +http://retailer.gocollect.com/do/session/1912828/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/exclusives/limited_editions.asp +http://retailer.gocollect.com/do/session/1912828/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/company_info/privacy_policy.asp +http://de.news.yahoo.com/000322/36/nfqj.html +http://www.kl.gz.cn/~cco/FUNA022K.htm +http://www.launch.com/music/artistpage/pvn_content/0,5219,1013738_videos,00.html +http://www14.freeweb.ne.jp/play/kiryuus/keith-burn1-end.htm +http://variety.studiostore.com/help/b.MOVIES%20STARWARSSAGA%20STARWARSTRIL/s.BmesFhV7 +http://biblioteca.upv.es/bib/doc/doc_siglibros/1828105/26/25/////MLTPAID/Materia%20Lengua%20inglesa%20técnica:%20254/V +http://www.outpersonals.com/cgi-bin/w3com/pws/out/_AhIPkFr0_eq7P6TUMbkQGJgpHJOXqtNLZQ55qFmeZARJaJUKHP9RBX3tPWaLEWVLZ_-PAErnbukTTJzs-x0hew4G_r3S85M8fDFaJcIVi3EA4TxNjTbbGIaSLhr8VdNICuBwhPmgZEt662B +http://www.outpersonals.com/cgi-bin/w3com/pws/out/IxhI6dPotFAZDugwPbV2pjvsgvIvAP-oFtIZfMptEKMo48cUO8RmvG3Akuk2tktzM_RYBY3yIQE6nl7I2moLEV_nScO7wTfWpFfPR7LHZ3ntJxKS8-a_IukWT4q_o6mjhGw8SSwm +http://www.rge.com/pub/languages/perl/clpa/1995-11/171 +http://www.rge.com/pub/languages/perl/clpa/1995-11/186 +http://www.newmgm.com/cgi-bin/c2k/title_talent.html&id=146091&title_star=FOURFEAT +http://www.koreaweekly.co.kr/entertain/book/200009/en20000922185938E701133.htm +http://www.koreaweekly.co.kr/entertain/book/200008/en20000824183337E701112.htm +http://www.genome.wustl.edu:8021/pub/gsc10/nci/wl/wl72/?N=D +http://yp.gates96.com/13/50/70/33.html +http://yp.gates96.com/13/50/70/36.html +http://yp.gates96.com/13/50/70/53.html +http://yp.gates96.com/13/50/71/74.html +http://yp.gates96.com/13/50/72/13.html +http://yp.gates96.com/13/50/72/17.html +http://yp.gates96.com/13/50/72/83.html +http://yp.gates96.com/13/50/73/48.html +http://yp.gates96.com/13/50/73/79.html +http://yp.gates96.com/13/50/73/96.html +http://yp.gates96.com/13/50/74/14.html +http://yp.gates96.com/13/50/74/57.html +http://yp.gates96.com/13/50/75/13.html +http://yp.gates96.com/13/50/75/19.html +http://yp.gates96.com/13/50/75/30.html +http://yp.gates96.com/13/50/75/42.html +http://yp.gates96.com/13/50/75/53.html +http://yp.gates96.com/13/50/75/90.html +http://yp.gates96.com/13/50/77/45.html +http://yp.gates96.com/13/50/77/51.html +http://yp.gates96.com/13/50/77/79.html +http://yp.gates96.com/13/50/78/12.html +http://yp.gates96.com/13/50/78/47.html +http://yp.gates96.com/13/50/78/69.html +http://yp.gates96.com/13/50/78/96.html +http://www.tel.de/s/M/MSS.htm +http://linux.usu.edu/LDP/LDP/LG/issue23/shoham/node4.html +http://www.monaco.gouv.mc/dataweb/gouvmc.nsf/(NewsActu)/d28eaee29b3287d4c1256905004e1ef1!OpenDocument&ExpandSection=9,3,10.1,7,10.4,10.2,5,8,4 +http://fi.egroups.com/post/romtrade?act=reply&messageNum=5198 +http://www.outpersonals.com/cgi-bin/w3com/pws/out/erhIHCd-6X--WwWIQBR9tYYraJWo8ugur0GyAl8pg21sE-lotAURKodv9HAYnRuTT4ZM0aCKsA5ZVLlq8sgiFNqA4DyAY_GVTyPIEARrzArj8JrWabVCSpg03afQ_Xg3DaCQA17080y7T4EZ +http://oneplace.adbureau.net/accipiter/adclick/site=ONEPLACE/area=INDEX/POSITION=BLOCK_1/AAMSZ=120x90/ACC_RANDOM=619055616855 +http://cafe6.daum.net/Cafe-bin/Bbs.cgi/MyLoveNYpds/qry/zka/B2-kB23m/qqatt/^ +http://cafe6.daum.net/Cafe-bin/Bbs.cgi/MyLoveNYpds/qry/zka/B2-kB2-s/qqatt/^ +http://sas.uoregon.edu/sashtml/proc/z0292518.htm +http://www02.geocities.co.jp/PowderRoom-Rose/1346/flower02image.html +http://www02.geocities.co.jp/PowderRoom-Rose/1346/sozaiheart2.html +http://www.jamba.de/KNet/_KNet-sXN8j1-9Hd-13ej3/admLogin.de/node.0/cdn3r3qy3 +http://iccardreader.co.kr/ +http://online.linux.tucows.com/conhtml/ser_irc_size.html +http://www.fogdog.com/cedroID/ssd3040183339940/nav/products/winter_sports/1b/bibs/ +http://www.fogdog.com/cedroID/ssd3040183339940/nav/products/winter_sports/1c/jackets/ +http://www.fogdog.com/cedroID/ssd3040183339940/nav/products/winter_sports/1d/heavyweight_tops/ +http://www.affiliate.hpstore.hp.co.uk/do/session/380883/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/assistance/entry.asp +http://www.kaos.dk/sex-riddle/k/a/k/i/l/y/t/c/ +http://www.kaos.dk/sex-riddle/k/a/k/i/l/y/t/o/ +http://ftp1.se.debian.org/debian/dists/stable/main/disks-alpha/2.2.8-2000-03-08/jensen/ +http://213.36.119.69/do/session/153006/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/FR/contact/recrute.htm +http://www10.freeweb.ne.jp/photo/myukun2/cosplay/000130/0130_40.htm +http://l-infonet.phkk.fi/fi/TIETOPALVELUT/JULKINEN+HALLINTO/tiedonhaku/artikkelit/hakupalvelut/l%E4%E4ketiede/tietokannat/ +http://202.109.72.57/article/20000903/67099.htm +http://www.outpersonals.com/cgi-bin/w3com/pws/out/5xhIsrJ5LBhn_gBogN2-VgQ1DA6WvBlLMjSoxYeQAJ1ig69sK1i1DhQ5hA3iOw7y6Wb_HDA2rkG5aJy9DrUMZxD31cyUqEqg7LeZ3pssb70DsyPc1sGCTVIRFBz1Nb_1ikEcJ3ds +http://ftp.gwdg.de/pub/misc/standards/infomagic/nist/oiw/agreemnt/read_me.txt +http://linuxberg.arrakis.es/conhtml/adnload/8894_17109.html +http://ring.toyama-ix.net/archives/pc/winsock-l/WWW-Browsers/Plug-In/ppp16124.txt +http://opac.lib.ntnu.edu.tw/search*chi/++ftlist/bp20040288/-5,-1,0,B/frameset&F=bp20040286&1,1 +http://ftp.darenet.dk/tucows/winme/adnload/137475_28966.html +http://ftp.darenet.dk/tucows/winme/adnload/137525_29009.html +http://elib.zib.de/pub/UserHome/Mueller/Course/Tutorial/Postscript/US/?M=A +http://greenpeace.lu/Admin/usage/weekly/1999/01/03/ +http://greenpeace.lu/Admin/usage/weekly/1998/04/26/ +http://greenpeace.lu/Admin/usage/weekly/1998/08/16/ +http://greenpeace.lu/Admin/usage/weekly/1997/10/12/ +http://retailer.gocollect.com/do/session/1912819/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/clubhouse/index.asp +http://www.kusastro.kyoto-u.ac.jp/LCs/index/AURAU.html +http://www.linux.com/networking/network/windows_nt/support/microsoft/Red_Hat/ +http://www.linux.com/networking/network/windows_nt/support/microsoft/operating_system/ +http://www.linux.com/networking/network/windows_nt/support/microsoft/SAP/ +http://www.linux.com/networking/network/windows_nt/support/microsoft/Unix/ +http://www.linux.com/networking/network/windows_nt/support/microsoft/pop-3/ +http://www.cs.rit.edu/photo_album/smr3632.html +http://www.cpan.dk/CPAN/modules/by-authors/id/C/CH/CHRMASTO/?D=A +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/lit/misc/unitest/lit/music/midi/ego.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/lit/misc/unitest/lit/music/midi/lit/multiple.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/lit/misc/unitest/lit/music/midi/misc/dissert.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/computers/lit/misc/unitest/lit/music/midi/misc/peanuts.html +http://www.eastsidejournal.com/sited/retr_story.pl/25409 +http://yp.gates96.com/8/46/50/23.html +http://yp.gates96.com/8/46/52/6.html +http://yp.gates96.com/8/46/52/10.html +http://yp.gates96.com/8/46/52/18.html +http://yp.gates96.com/8/46/52/25.html +http://yp.gates96.com/8/46/53/78.html +http://yp.gates96.com/8/46/53/95.html +http://yp.gates96.com/8/46/54/26.html +http://yp.gates96.com/8/46/54/41.html +http://yp.gates96.com/8/46/54/64.html +http://yp.gates96.com/8/46/54/76.html +http://yp.gates96.com/8/46/54/92.html +http://yp.gates96.com/8/46/55/62.html +http://yp.gates96.com/8/46/55/94.html +http://yp.gates96.com/8/46/55/98.html +http://yp.gates96.com/8/46/56/19.html +http://yp.gates96.com/8/46/56/42.html +http://yp.gates96.com/8/46/56/86.html +http://yp.gates96.com/8/46/58/53.html +http://yp.gates96.com/8/46/58/57.html +http://yp.gates96.com/8/46/59/41.html +http://yp.gates96.com/8/46/59/44.html +http://yp.gates96.com/8/46/59/84.html +http://yp.gates96.com/8/46/59/99.html +http://www.158.com.cn/news/2000/09/03/58946.htm +http://www.pobladores.com/territorios/juegos/Shanodin/pagina/2 +http://www.otemachi.ibm.co.jp/pc/vlp/ca20/32l9068/price.html +http://www.gutenberg2000.de/lessing/sinnged/sinna10.htm +http://www.gutenberg2000.de/lessing/sinnged/sinn138.htm +http://www.gutenberg2000.de/lessing/sinnged/sinnc27.htm +http://www.gutenberg2000.de/lessing/sinnged/sinnc06.htm +http://calcul.si.uji.es/Programes/SAS/stat/chap4/sect5.htm +http://calcul.si.uji.es/Programes/SAS/stat/chap4/sect6.htm +http://link.fastpartner.com/do/session/600436/vsid/3194/tid/3194/cid/137201/mid/1060/rid/2105/chid/3194/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/learn.htm +http://www.linux.com/networking/network/red_hat/performance/workstations/business/ +http://ftp.dei.uc.pt/pub/faqs/backrubs/faq/?D=A +http://www2.el-mundo.es/nuevaeconomia/2000/NE022/NE022-16b.html +http://ring.toyama-ix.net/pub/linux/linuxppc-jp/2.0/UsersGuide/?N=D +http://www.egroups.com/message/swchicks-rpg/763 +http://webraft.its.unimelb.edu.au/705195/students/caitlinb/pub/?N=D +http://cn.egroups.com/message/indexinvesting/17 +http://networkdesigner.subportal.com/sn/Programming/Setup_Utilities/11753.html +http://www.imagestation.com/member/?name=Mermaid34v&c=1 +http://crn.com/Components/TalkBack/tb-read.asp?ArticleId=8463 +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/misc/lit/computers/music/linux/misc/thoughts/turingtest.html +http://www.egroups.com/message/house_caliburnus/1479 +http://pub14.ezboard.com/BBSForum.showForumSearch?boardName=bleemtest +http://spaceports.tucows.com/winme/adnload/136943_28461.html +http://www.cerent.com/warp/public/767/spcl/vaccess/req-lab.html +http://www.ualberta.ca/icons/icons/numbers/Big-orange-thin/ +http://www.gencat.es/cgi-bin/bc/drawer.cgi/LD/0004/A00027?98 +http://interhotel.com/romania/en/hoteles/49235.html +http://www.infoscape.com.cn:8171/nf/0001/19/nfzx1908.htm +http://www.hurriyetim.com/akdeniz/turk/00/05/25/akdhab/62akd.htm +http://www.hurriyetim.com/akdeniz/turk/00/05/25/akdhab/38akd.htm +http://dennou-t.ms.u-tokyo.ac.jp/arch/cc-env/Linux/debian-jp/dists/woody-jp/contrib/binary-ia64/misc/?M=A +http://www.angelfire.com/vt/Mystical2 +http://www.indonesiansources.com/HELP/COOKIES.HTM +http://members.nbci.com/cmeadows/gvi/45regt/45gvibat.html +http://members.nbci.com/cmeadows/gvi/45regt/45gvicob.html +http://landview.census.gov/hhes/www/housing/soma/char96/ch96tab5.html +http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPENNSYLVANIAdENERGYdASSISTANCEdANDdCONSERVATIONdACT.HTM +http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPENNSYLVANIAdSEWAGEdFACILITIESdACT.HTM +http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPODIATRYdPRACTICEdACT.HTM +http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPRESIDENT.HTM +http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPRIVATEdMORTGAGEdINSURANCEdACT.HTM +http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPROJECTd500.HTM +http://www.legis.state.pa.us/WU01/LI/BI/TI/1985/0/MNPUBLICdWORKSdCONTRACTdREGULATIONdLAW.HTM +http://oss.sgi.com/cgi-bin/cvsweb.cgi/inventor/apps/samples/4view/Attic/Imakefile?only_with_tag=MAIN +http://oss.sgi.com/cgi-bin/cvsweb.cgi/inventor/apps/samples/4view/Attic/Imakefile?only_with_tag=HEAD +http://www4.50megs.com/justiceinn/charpages/leaves/707.html +http://www4.50megs.com/justiceinn/charpages/leaves/859.html +http://www4.50megs.com/justiceinn/charpages/leaves/171.html +http://www4.50megs.com/justiceinn/charpages/leaves/114.html +http://megalink.tucows.com/win2k/adnload/38582_28844.html +http://members.tripod.lycos.nl/monthlysports/hello_and_welkom_at_the_new.htm +http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/nbrnberwo4558.html +http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/nbrnberwo4462.html +http://coe.ier.hit-u.ac.jp/BibEc/data/Papers/nbrnberwo4813.html +http://pub4.ezboard.com/factiveprodiscussioncommunityhottopicsresidentsandalcohol.showMessage?topicID=3.topic +http://207.138.41.133/subscribe/IndoVStudio +http://www.biuemountain.com/eng3/karen/EArejoice.html +http://polygraph.ircache.net:8181/wwwboard/capabilities/http_-2www.westnebr.net/http_-2www.excite.com/grservic.htm +http://pub7.ezboard.com/fturonneuemissionennebenwerteundsonstigewerte.showAddReplyScreenFromWeb?topicID=58.topic +http://dk.egroups.com/post/badbart-showdown?act=forward&messageNum=679 +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus62920/eus62921/eus64894/eus170276/eus163832/ +http://www.algonet.se/~d88628/engelsk/various.htm +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=220&discrim=220,215,11 +http://www.z-plus.de/TEXTE/INETCO/AUSG20000524/text7.html +http://www.gbnf.com/genealog2/varner/html/d0059/I11636.HTM +http://www.musiciansfriend.com/ex/ds/live/001030183152064208037007463633 +http://www.musiciansfriend.com/ex/ds/home/001030183152064208037007463633?dbase=info,order_info.html +http://www.musiciansfriend.com/ex/ds/guitar/amps/001030183152064208037007463633?dbase=info,contact.html +http://pix.egroups.com/message/ipe/1642?source=1 +http://213.36.119.69/do/session/153008/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://resa.travelprice.com/CallCenter/InitCommunicationAgence +http://213.36.119.69/do/session/153008/vsid/1113/tid/1113/cid/28507/mid/1020/rid/1041/chid/1103/parser/yes/imref/eqqLmwlGltt5tkqHoXsLbimLofZLbkZHljlK6IlK/url/http://www.travelprice.com/DE_DE/ +http://www.egroups.com/message/peninsulaserv/567 +http://www.scifi.com/bboard/browse.cgi/1/5/545/12425?pnum=3 +http://no.egroups.com/post/icc-info?act=reply&messageNum=759 +http://www.chaos.dk/sexriddle/s/e/x/e/c/s/l/ +http://www.chaos.dk/sexriddle/s/e/x/e/c/s/t/ +http://www.nissan.co.jp/RENAULT-DEALERS/PASSPORT/view.cgi/search/972959630-- +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=6,29,20,36,32 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=7,29,20,36,32 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=27,29,20,36,32 +http://dada.linuxberg.com/gnomehtml/adnload/31471_2540.html +http://augustasports.com/football99/college/box_50347.shtml +http://augustasports.com/football99/college/box_50365.shtml +http://augustasports.com/football99/college/box_50423.shtml +http://www.linux.com/networking/network/enterprise/e-commerce/management/open_source/ +http://usol.pdacentral.com/winnt/preview/1946.html +http://usol.pdacentral.com/winnt/preview/78287.html +http://usol.pdacentral.com/winnt/preview/1338.html +http://usol.pdacentral.com/winnt/preview/12860.html +http://usol.pdacentral.com/winnt/preview/6920.html +http://usol.pdacentral.com/winnt/preview/51381.html +http://ring.htcn.ne.jp/pub/lang/perl/CPAN/authors/id/W/WO/?N=D +http://grybrd.subportal.com/sn/Network_and_Internet/Text_Chat_Clients/index1.html +http://www.gurlpages.com/lacej/part13.html +http://ring.shibaura-it.ac.jp/archives/mac/info-mac/game/com/wolf/?D=A +http://cgi.cnnsi.com/baseball/mlb/nl/gamelog/2000/10/07/mets_giants/ +http://my.egroups.com/messages/not_honyaku/236 +http://members.tripod.com/agran_gassendi/Countdown.htm +http://www.tccomputers.com/cgi-bin/bp/1878637479/showcase/showcase.htm +http://207.138.41.133/message/AikensTrivia/264 +http://207.138.41.133/message/AikensTrivia/276 +http://www.shumway.org/thetree/ped13583.htm +http://link.fastpartner.com/do/session/600421/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/dk/ +http://link.fastpartner.com/do/session/600421/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/politiken.php +http://link.fastpartner.com/do/session/600421/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/company/jobs.htm +http://in.egroups.com/message/canada/856 +http://in.egroups.com/message/canada/883 +http://debian.tod.net/OpenBSD/src/lib/libssl/README.OPENBSD +http://www.emerchandise.com/main/EMERCH/s.1M38gYrZ +http://www.emerchandise.com/browse/TOYSTORY2/FIGURINE/b.FAVORITES%20COMICS%20ANIMFEAT%20TOYSTORY2/s.1M38gYrZ +http://quotidiano.monrif.net/chan/cronaca_nazionale:410879.1:/1999/12/24 +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=baignes&l=fr +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=baignas&l=fr +http://www.egroups.com/message/swchicks-rpg/93 +http://usuarios.tripod.es/jlgolis/id142_l.htm +http://www9.freeweb.ne.jp/shopping/nossy/baby/200-59.html +http://www9.freeweb.ne.jp/shopping/nossy/baby/305-36.html +http://ftp.tku.edu.tw/OS/NetBSD/NetBSD-1.3.2/alpha/binary/kernel/?D=A +http://www-1.cisco.com/univercd/cc/td/doc/product/wanbu/82/access/fpmpmm12/fpmmappe.pdf +http://pub17.ezboard.com/fartofnorrathfavoritepaintings.threadControl?topicID=56.topic +http://itcareers.careercast.com/texis/it/itjs/+pwwBmew_D86eGrwwwqFqygdMpwDOeWXqqBcneWkjnwBneWkxqBOeWRlmmOtFqewyXwotoBwcaMwDwtnanmowcdt1naqconDBaGncwBodD5ropa5BGwBnton5amnVncdpaMwGAnBoDtanMwocaGn51MnaMFqryfHfREIDzmbwwwpBmFe-B-dehxwww5rmXmwwBrmeZpwww/morelike.html +http://www.thestateofcolorado.com/aoubicycling.html +http://www.freespeech.org/DISjak/disnews/maillist.html +http://www.freespeech.org/DISjak/sport/schwimm/bestlist.html +http://www.amigos.com/cgi-bin/w3com/pws/ffe/_MhIXE2wgPJZ1X047wqRwM-olUgaV3vI6fBPmDsoD0c26y7TrHjLUhhhTSIZ2PRmqLmBVyInWJLkLGkKScrdFyX1uyXCZhvaWFvbnSFioewAURJcXQC-hJE5KczVcMUiq3ncgKjQh7nynQEu662C +http://m.home.cern.ch/m/mrashid/www/cuisine/cuisin13.htm +http://m.home.cern.ch/m/mrashid/www/cuisine/cuisin28.htm +http://www.dayoo.com/channel/stock/news/cjzh/09/0921/06.htm +http://webcvs.kde.org/cgi-bin/cvsweb.cgi/KodeKnight/lib/Makefile.am?r1=1.3&sortby=rev +http://www.fogdog.com/cedroID/ssd3040183315779/nav/products/featured_brands/12p/all/ +http://www.fogdog.com/cedroID/ssd3040183315779/nav/stores/baseball/ +http://www.fogdog.com/cedroID/ssd3040183315779/nav/stores/squash/ +http://www9.hmv.co.uk:5555/do/session/1347832/vsid/199/tid/199/cid/1061396/mid/1020/rid/1052/chid/1029/parser/yes/imref/eqqLmwlGltt5tkeHjskKZlkKrhlK/url/http://www.hmv.co.uk/hmv/newmenu.html +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=9,36,8 +http://www.arm.com/sitearchitek/support.ns4/html/cores_faq!OpenDocument&ExpandSection=24,36,8 +http://www.hig.se/(append,countdown,set,sqloutput,sqltable)/~jackson/roxen/ +http://ring.jec.ad.jp/archives/linux/kernel.org/kernel/people/mingo/raid-patches/raid-2.2.17-A0 +http://www.wsrn.com/apps/links/?s=BKIRF +http://www.auto.ru/wwwboards/mercedes/0163/ +http://www.auto.ru/wwwboards/mercedes/0142/ +http://www.auto.ru/wwwboards/mercedes/0132/ +http://www.auto.ru/wwwboards/mercedes/0002/ +http://www.auto.ru/wwwboard/mercedes/0014/ +http://www.presa.spb.ru/newspapers/dp/arts/dp-178-art-12.html +http://pub8.ezboard.com/fnirlcomcenterracetalk.showMessage?topicID=8.topic +http://www.allhealth.com/pregnancy/labor/qa/0,3105,599,00.html +http://www3.newstimes.com/archive99/sep0499/lce.htm +http://jupiter.u-3mrs.fr/~msc41www/PSHTM/PS4330.HTM +http://www.gpul.org/ftp/os/linux/cd-images/other/suse/dosutils/pfdisktc/ +http://platsbanken.amv.se/kap/text/88/001025,010050,240907,10,0107051488.shtml +http://www.angel-bastel-zoo.de/detail/detail_811_3.htm +http://members.nbci.com/cmeadows/gvi/3battn/3bgvicob.html +http://www.chaos.dk/sexriddle/s/e/x/x/p/o/r/ +http://www.asiastockwatch.com/sg/Forum/ForumDetails/0,1819,561_1_2:15,00.html +http://mysanantonio.sportshuddle.com/sports/football/health/advisors/workouts/huff12.asp +http://mysanantonio.sportshuddle.com/sports/football/health/advisors/workouts/huff1.asp +http://ring.data-hotel.net/pub/linux/debian/debian-jp/dists/unstable/contrib/source/math/ +http://www.tel.de/s/I/IFG.htm +http://www.tel.de/s/I/IFHV.htm +http://chat.hr-online.de/fs/buecherbuecher/buch/kerr.html +http://mirror.cc.utsunomiya-u.ac.jp/mirror/FreeBSD/branches/2.2-stable/src/sys/dev/ +http://mirror.cc.utsunomiya-u.ac.jp/mirror/FreeBSD/branches/2.2-stable/src/sys/nfs/ +http://www.malaysia.net/lists/sangkancil/1998-12/msg01044.html +http://biblio.cesga.es:81/search*gag/aFerreiro,+MartÃÂÃÂÃÂÃÂn/aferreiro+martin/-5,1,1,E/frameset&F=aferreiro+manuel&4,,4 +http://www.ferien-immobilien.de/DominikanischeRep/verkauf/Exklusiv-IB/Startseite/Gemeinsam/MarketingStrategie/Exklusiv-IB/Startseite/Gemeinsam/erreichenPartner/email3d.htm +http://www.ferien-immobilien.de/DominikanischeRep/verkauf/Exklusiv-IB/Startseite/Gemeinsam/MarketingStrategie/Exklusiv-IB/Startseite/Gemeinsam/IIMMitglieder.htm +http://chunma.yeungnam.ac.kr/~home/home13/msgboard/msgboard.cgi?cmd=list&stat=start +http://link.fastpartner.com/do/session/600413/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/local/redirect.php +http://www.eyeball.symantec.co.uk/region/se/sepress/20000418111220.htm +http://www.rezel.enst.fr/ftp/linux/distributions/debian/CD-1/dists/frozen/main/binary-all/news/?D=A +http://www.latimes.com/editions/orange/20001028/p000103070_ome0014.html +http://www.chaos.dk/sexriddle/j/c/u/t/ +http://cometweb01.comet.co.uk/do!session=132050&vsid=694&tid=20&cid=37044&mid=1000&rid=1060&chid=1711&url=eqqLmwlGltt5tkkHbqpLZXmLbkZHljlKaltLkilLXalKfkaLbukKeqjLi1 +http://perso.wanadoo.fr/jm.michaud/electronique_index.htm +http://dk.egroups.com/messages/Gunsmithing/1446?viscount=-30 +http://www-d0.fnal.gov/d0dist/dist/releases/psim01.02.00/pmcs_met/VERSION +http://mirror.cc.utsunomiya-u.ac.jp/mirror/CPAN/authors/id/P/PM/?N=D +http://www.movieguide.com/pressroom/events/amcinema96/award_amcinema965.html +http://www.sda.t-online.de/reise/index/aktrex201.htm +http://dic.empas.com/show.tsp/SMASHER +http://www.3w-posters.com/tomlinson.htm +http://www.3w-posters.com/tuttle.htm +http://www.xmission.com/(art,dots,ftp,geek,misc,music,caffiene,art,toys,dots,edge,misc,shopping,ftp,places,privacy,geek,cuseeme,apocalypse,people,stuffiuse,places,stuffiuse)/~bill/links.html +http://www.osiris.978.org/~brianr/mirrors/olga/main/g/gangi_mike/?N=D +http://www.best.com/~workpage/g/57/300g.htm +http://www.cyd.com.cn/zqb/19991109/GB/9677^Q212.htm +http://edu.news.chinaren.com/161/10112157.shtml +http://users.info.unicaen.fr/~jjousset/perso/html/entrainperso/page.html +http://www.wordtheque.com/owa-wt/wordtheque_dba.w.t?w=destituiscono&l=it +http://www.uk.multimap.com/p/browse.cgi?pc=B771AA&cat=loc +http://www.auxerre.culture.gouv.fr/culture/actualites/conferen/bonneuil-duffour.htm +http://www.auxerre.culture.gouv.fr/culture/actualites/communiq/mediaBonneuil-Duffour.htm +http://www.ancientsites.com/~Ftagn_Sithathor +http://biblioteca.upv.es/bib/doc/doc_fisbd/86/127697//C/1820009/0////25/N/MLTPAI +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus53930/eus169714/eus169722/eus542057/eus542410/ +http://www.kfi640.com/shared/mod_perl/looksmart/looksmart/eus1/eus53930/eus169714/eus169722/eus542057/eus542106/ +http://pub26.ezboard.com/fathanasiafrm1.showMessage?topicID=113.topic +http://www.sourceforge.net/softwaremap/trove_list.php?form_cat=186&discrim=186,226,251 +http://www.linux.com/networking/network/community/future/news/services/ +http://www.linux.com/networking/network/community/future/news/operating_system/ +http://www.linux.com/networking/network/community/future/news/?kw_offset=50 +http://www.linux.com/networking/network/development/unix/open_source/commercial/ +http://ring.shibaura-it.ac.jp/pub/misc/ham/funet/packet/00Index +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+20,0+17,0-( +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=3,0+20,0+17,0-9,1 +http://www.vorlesungen.uni-osnabrueck.de/informatik/c98/aufgaben/code/aufg50/ProcessInfo/ProcessInfo.bundle/Resources/?D=A +http://wap.jamba.de/KNet/_KNet-xOQ8j1-xHd-13fk7/showInfo-special1.de/node.0/cde7f1uou +http://nx5.salon.com/books/col/keil/2000/05/02/too_old/index2.html +http://pcmagazin.de/news/artikel/1999/04/29016-wf.htm +http://www.redrival.com/rgrascher/ +http://208.184.36.144/cwi/subscriptions/privacy_policy/0,1323,NAV47-68-85-98_STO52856,00.html +http://www.staroriental.net/nav/soeg_c/ihf,aol,n12,1,TVB香港小姐2000.html +http://www.staroriental.net/nav/soeg_c/ihf,aol,n12,6,TVB香港小姐2000.html +http://166.111.104.242/uscode/30/541b.head.html +http://stocks.tradingcharts.com/stocks/charts/fwrx/dchart.php?S=fwrx&T=d +http://genforum.genealogy.com/cgi-bin/print.cgi?plemmons::57.html +http://www.geocities.co.jp/Hollywood-Studio/3572/geodiary.html +http://www.luf.org/~jwills/LufWiki/view.cgi/Tech/ +http://www.doc.ic.ac.uk/lab/labsrc_area/firstyear/submissions/cs1/labs/Ex01/arr00/?M=A +http://citeseer.nj.nec.com/ps/332798 +http://citeseer.nj.nec.com/addcomment/332798 +http://citeseer.nj.nec.com/cidcontext/4075337 +http://ftp.te.fcu.edu.tw/cpatch/helputil/answerworks/?M=A +http://ftp.te.fcu.edu.tw/cpatch/helputil/answerworks/d2hpro4ethanks.htm +http://link.fastpartner.com/do/session/600423/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/join/programmes/mondosoft.php +http://link.fastpartner.com/do/session/600423/vsid/2870/tid/2870/cid/136966/mid/1060/rid/1926/chid/2870/parser/yes/imref/eqqLmwlGltt5tkcHXpqLmXoLqkbLokZHljlK/url/http://www.fastpartner.com/company/ +http://library.cuhk.edu.hk/search*chi/dEnglish+language+--+Clauses./denglish+language+clauses/7,-1,0,B/browse +http://www04.u-page.so-net.ne.jp/yd5/yuma/top/home.html +http://www.smartshop.com/cgi-bin/main.cgi?c=1905&ssa=26 +http://www.smartshop.com/cgi-bin/main.cgi?c=1943&ssa=26 +http://se.egroups.com/dir/Business/Management/Project_and_Program_Management/Training?st=10 +http://www.hpl.online.sh.cn/WENXUE/tongsuo/wuxia/gulong/xueying/_vti_cnf/hs~001.htm +http://news.medscape.com/adis/PEON/public/archive/1999/toc-0221.html +http://news.medscape.com/adis/PEON/public/archive/1999/toc-0197.html +http://tucows.hongkong.com/winnt/adnload/4256_29575.html +http://www.etang.com/local/shenzhen/shopping/shop/0318mans02.htm +http://www.etang.com/local/shenzhen/shopping/shop/0319foll.htm +http://www.etang.com/local/shenzhen/shopping/shop/0319jialjs.htm +http://www.staffan.addr.com/cgi-bin/woda/icq.cgi/Edit?_id=2a5e +http://www.linux.com/networking/network/operating_system/kernel/distro/?printable=yes +http://www.linux.com/networking/network/operating_system/kernel/distro/commercial/ +http://www.linux.com/networking/network/operating_system/kernel/distro/white_dwarf/ +http://dir.dig.co.kr/parents/textbook/20301030101.html +http://www.affiliate.hpstore.hp.co.uk/do/session/380895/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/fr/CASHBACK/entry.asp +http://ccuftp.ccu.edu.tw/pub1/chinese/linux/clinux/c1/?N=D +http://cgi.cnnsi.com/basketball/college/women/boxscores/2000/03/07/cbp_rak +http://www.adcentral.com/cgi-bin/w3com/pws/adsites/5BRIztXQWHs_H_kyq8hmyrHpmCLb5RfQ09-DcKP1B6mZibAiJTLy1w3iiFS15WkFiCHMuMtjNK5FtHPDtZ7rxwckgoj0GaicnAZxhJLQ3zWaLoNUq8eTpG7wCxe3TWAb66jt +http://www.varsity.cam.ac.uk/varsity/live/2000/listings.nsf/44bbd1c2a6305036802567fb0081c76b!OpenView&Grid=1&Date=1999-04-06 +http://students.lsu.edu/students/main.nsf/Pages/CSISAJ1!OpenDocument&ExpandSection=15,21,5,4 +http://students.lsu.edu/students/main.nsf/Pages/CSISAJ1!OpenDocument&ExpandSection=18,21,5,4 +http://www.getplus.co.jp/category/catinet.homepagew2.asp +http://www.motorradversand.de/cgi-bin/antrieb/kettensatz_komplett_suzuki/RK82K872/beurteilung.htm +http://202.99.23.245/zdxw/13/20000328/200003281335.html +http://proxy.tiscover.com/1Root/Kontinent/6/Staat/7/Bundesland/22/Ort/120/Infrastruktur/299270/Homepage/homepage...1.html +http://www.jamba.de/KNet/_KNet-RcO8j1-cHd-13eq4/browse.de/node.0/cdel3j591 +http://www.jamba.de/KNet/_KNet-RcO8j1-cHd-13eqf/showInfo-wir.de/node.0/cde7f1uou +http://pub6.ezboard.com/fcrazyassmb47001generalshiznit.threadControl?topicID=685.topic +http://perso.infonie.fr/imagestld/photojyg5/images/alive5/?D=A +http://members.spree.com/sip1/take5planet/videos.htm +http://ae.boston.com/haiku/vote?haiku_id=4484 +http://adex3.flycast.com/server/socket/127.0.0.1:2800/click/OnlineCitiesSM/OnlineCitiesInteractiveCityGuides/bd129601192 +http://www.digitaldrucke.de/(aktuell,computer,marktplatz,shopping,verkehr)/suche/uebersicht.html +http://www.digitaldrucke.de/(aktuell,computer,hersteller,marktplatz,verkehr)/_fort/html/themen/computer/hard/herstell.htm +http://bbs.kcm.co.kr/NetBBS/Bbs.dll/kcmmission/lst/qqeq/1/zka/B2-kD2-l/qqo/004A +http://bbs.kcm.co.kr/NetBBS/Bbs.dll/kcmmission/rcm/zka/B2-kD2-l/qqo/004A/qqatt/^ +http://ftp.eq.uc.pt/software/lang/tcl/ftp.scriptics.com/nightly-cvs/tk/library/?S=A +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-141.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-165.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-241.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-239.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-150.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-44.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-12.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-4.html +http://www.infomedia.it/cgi-bin/lwgate/JAVA-IT/archives/java-it.log.9704/Subject/article-27.html +http://yp.gates96.com/5/88/50/47.html +http://yp.gates96.com/5/88/50/94.html +http://yp.gates96.com/5/88/51/20.html +http://yp.gates96.com/5/88/52/11.html +http://yp.gates96.com/5/88/52/26.html +http://yp.gates96.com/5/88/53/86.html +http://yp.gates96.com/5/88/53/99.html +http://yp.gates96.com/5/88/54/48.html +http://yp.gates96.com/5/88/55/29.html +http://yp.gates96.com/5/88/55/31.html +http://yp.gates96.com/5/88/55/41.html +http://yp.gates96.com/5/88/55/62.html +http://yp.gates96.com/5/88/55/77.html +http://yp.gates96.com/5/88/56/62.html +http://yp.gates96.com/5/88/56/93.html +http://yp.gates96.com/5/88/59/61.html +http://ceu.fi.udc.es:8000/mc/maillist/99-02/2090.918081010.176207534.html +http://ceu.fi.udc.es:8000/mc/maillist/99-02/1123.920140263.921690399.html +http://ceu.fi.udc.es:8000/mc/maillist/99-02/19089.918231855.610311830.html +http://ceu.fi.udc.es:8000/mc/maillist/99-02/16059.919279797.801472096.html +http://ceu.fi.udc.es:8000/mc/maillist/99-02/24001.919906575.275033199.html +http://ceu.fi.udc.es:8000/mc/maillist/99-02/14848.918256026.548154577.html +http://ceu.fi.udc.es:8000/mc/maillist/99-02/10783.918253985.660158806.html +http://ceu.fi.udc.es:8000/mc/maillist/99-02/27581.918670666.1055622954.html +http://www.activedayton.com/sportsticker/stnd/current/BBH.STAT.FSLKISLTRT.html +http://www.teenplatinum.com/barelylegal/japanesewomen/boots/petitesmall/explodingblowjob/eunuchbodyshots/homosexualass.html +http://books.hyperlink.co.uk/xt1/Methodology_for_the_Harmonization_of_European_Occupational_Accident_Statistics/9282641007 +http://www.jpc-music.com/2563637.htm +http://www.jpc-music.com/8168850.htm +http://www.expage.com/sugarshackstablesapryl +http://www.egroups.com/messages/svlug/31105 +http://www.chinawolf.com/~warson/japan/chichuan/bride/mldxn/009.htm +http://www.chinawolf.com/~warson/japan/chichuan/bride/mldxn/011.htm +http://yp.gates96.com/11/78/70/19.html +http://yp.gates96.com/11/78/70/95.html +http://yp.gates96.com/11/78/71/64.html +http://yp.gates96.com/11/78/71/65.html +http://yp.gates96.com/11/78/72/30.html +http://yp.gates96.com/11/78/73/35.html +http://yp.gates96.com/11/78/74/0.html +http://yp.gates96.com/11/78/75/58.html +http://yp.gates96.com/11/78/76/75.html +http://yp.gates96.com/11/78/77/36.html +http://yp.gates96.com/11/78/77/64.html +http://yp.gates96.com/11/78/78/20.html +http://yp.gates96.com/11/78/78/33.html +http://yp.gates96.com/11/78/78/70.html +http://yp.gates96.com/11/78/78/93.html +http://yp.gates96.com/11/78/79/3.html +http://yp.gates96.com/11/78/79/50.html +http://ben.aspads.net/ex/c/190/649604396 +http://www.lifl.fr/PRIVATE/Manuals/java/jdk1.2/docs/api/java/applet/class-use/AudioClip.html +http://dic.empas.com/show.tsp/?q=cea&f=B +http://beautifulthemes.subportal.com/sn/Utilities/Disk_Maintenance_and_Repair_Utilities/5294.html +http://ustlib.ust.hk/search*chi/anational+bureau+of+economic+research/anational+bureau+of+economic+research/-5,-1,0,E/frameset&F=anational+bureau+of+asian+and+soviet+research+u+s&1,,0 +http://www.canlii.org/ca/regl/dors99-120/art5.html +http://www.canlii.org/ca/regl/dors99-120/partie144284.html +http://www.incestpornstories.com/freshmanteen/eggbirth-canal/loverdrag-queen/birth-canalfull-term/stomachvagina.html +http://www.fashion-j.com/bs/013/013/19.html +http://www.fjtcm.edu.cn/Fujian_w/news/fjgsb/990311t/1-3.htm +http://www.kaos.dk/sex-riddle/k/a/k/i/s/z/r/d/ +http://www.kaos.dk/sex-riddle/k/a/k/i/s/z/r/f/ +http://www.tccomputers.com/cgi-bin/bp/41291345/products/specials/mbbundle.htm +http://www.tccomputers.com/cgi-bin/bp/41291345/services/insight.htm +http://www.tccomputers.com/cgi-bin/bp/41291345/products/batterybackups/batterybackups.htm +http://cartografia.comune.modena.it/Ril_Whip/menuogg/001-100/ME0068c.htm +http://library.bangor.ac.uk/search/cWS+5+V196a+2000/cws++++5+v196+a+2000/7,-1,0,B/frameset&F=cws+++21+e84+1989&5,,12 +http://mindit.netmind.com/proxy/http://www.exposure.aust.com/~promote1/auspalaeo/tectonix/tect1.htm +http://ftp.fi.debian.org/debian/dists/unstable/non-free/binary-i386/shells/?S=A +http://excite.de.netscape.com/unterhaltung/katalog/19344 +http://www.symatrixinc.com/website/website.nsf/0/3e40df86fb357cd5882568720079613f!OpenDocument&ExpandSection=25,20,21,29 +http://www.burstnet.com/ads/ad7826a-map.cgi/1708189811 +http://dic.empas.com/show.tsp/?s=b&q=CONSIDERABLE +http://www.kaos.dk/sex-riddle/k/a/k/i/p/g/t/c/ +http://www.kaos.dk/sex-riddle/k/a/k/i/p/g/t/h/ +http://www.kaos.dk/sex-riddle/k/a/k/i/p/g/t/n/ +http://www.kaos.dk/sex-riddle/k/a/k/i/p/g/t/x/ +http://www.cbe21.com.cn/xueke/dili/jiaoxuezs/ziliaojn/tupianhc/i0602.htm +http://babycenter.netscape.com/bbs/3788/thread530/message9.html +http://polygraph.ircache.net:8181/http_-2www.harborbay.com/home/webstuff/companyprofile.htm +http://dante.bdp.it/cgi-bin/poseidon_v2.0/reflect/poseidon/disc/bibl-uno/512098188/threadconfig +http://dante.bdp.it/cgi-bin/poseidon_v2.0/reflect/poseidon/disc/bibl-uno/512098188/newconfig +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=5,1,16,25,13 +http://www2.hgo.se/Kurskatalogen.nsf/a49e2126c83c4922412566f60052f831/f24cc45affc890eec12565d80055e0b9!OpenDocument&ExpandSection=28,1,16,25,13 +http://ftp.sunet.se/pub/lang/perl/CPAN/authors/id/R/RH/?D=A +http://www.geocities.co.jp/SilkRoad/1618/nixxki/010799.html +http://genforum.genealogy.com/cgi-genforum/forums/americanrev.cgi?4444 +http://in.egroups.com/message/djgppgames/358 +http://freehost.crazyhost.com/teengallery/apbh/panty.html +http://buffy.acmecity.com/xander/366/EDpt2.htm +http://www.tccomputers.com/cgi-bin/bp/505218695/promotional/deals.htm +http://www.tccomputers.com/cgi-bin/bp/505218695/products/cooling/cooling.htm +http://www.tccomputers.com/cgi-bin/bp/505218695/products/dvds/dvds.htm +http://www.tccomputers.com/cgi-bin/bp/505218695/products/mice/mice.htm +http://www.tccomputers.com/cgi-bin/bp/505218695/services/register.htm +http://www.foxsports.com/nba/scores/2000/000129_playbyplay_clewas.sml +http://pub1.ezboard.com/fcellofuncellistsbynightsemiprooramateur.showAddReplyScreenFromWeb?topicID=513.topic&index=9 +http://yp.gates96.com/0/22/30/81.html +http://yp.gates96.com/0/22/31/89.html +http://yp.gates96.com/0/22/32/1.html +http://yp.gates96.com/0/22/32/12.html +http://yp.gates96.com/0/22/32/48.html +http://yp.gates96.com/0/22/32/78.html +http://yp.gates96.com/0/22/34/48.html +http://yp.gates96.com/0/22/34/75.html +http://yp.gates96.com/0/22/34/85.html +http://yp.gates96.com/0/22/35/38.html +http://yp.gates96.com/0/22/35/73.html +http://yp.gates96.com/0/22/36/40.html +http://yp.gates96.com/0/22/36/92.html +http://yp.gates96.com/0/22/37/0.html +http://yp.gates96.com/0/22/37/61.html +http://yp.gates96.com/0/22/37/96.html +http://yp.gates96.com/0/22/39/13.html +http://yp.gates96.com/0/22/39/94.html +http://www.incestpornstories.com/underageflashing/plus-sizereal-size/beautiesasian/purpleanal-sex/maledomfantasy/high-schoolpretty/cherrybest-friends.html +http://variety.studiostore.com/browse/ELMOINGROU/TOY/s.2vzELAA2 +http://members.tripod.lycos.nl/BOGAERT/off2.htm +http://www.eveclub.com/cgi-bin/eveclub.front/972959555004/Catalog/2000019 +http://genforum.genealogy.com/cgi-genforum/forums/noel.cgi?662 +http://www.affiliate.hpstore.hp.co.uk/do/session/380888/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-expo.com/FR/REGISTRATION/entry.asp +http://yp.gates96.com/5/88/10/35.html +http://yp.gates96.com/5/88/10/44.html +http://yp.gates96.com/5/88/11/36.html +http://yp.gates96.com/5/88/13/1.html +http://yp.gates96.com/5/88/13/23.html +http://yp.gates96.com/5/88/13/77.html +http://yp.gates96.com/5/88/13/86.html +http://yp.gates96.com/5/88/14/47.html +http://yp.gates96.com/5/88/14/83.html +http://yp.gates96.com/5/88/15/11.html +http://yp.gates96.com/5/88/16/43.html +http://yp.gates96.com/5/88/16/86.html +http://yp.gates96.com/5/88/17/6.html +http://yp.gates96.com/5/88/17/12.html +http://yp.gates96.com/5/88/17/73.html +http://yp.gates96.com/5/88/18/1.html +http://yp.gates96.com/5/88/18/38.html +http://yp.gates96.com/5/88/18/47.html +http://yp.gates96.com/5/88/18/79.html +http://newnova.tucows.com/winme/adnload/138430_29763.html +http://yp.gates96.com/8/43/60/48.html +http://yp.gates96.com/8/43/60/55.html +http://yp.gates96.com/8/43/61/22.html +http://yp.gates96.com/8/43/62/40.html +http://yp.gates96.com/8/43/62/52.html +http://yp.gates96.com/8/43/62/94.html +http://yp.gates96.com/8/43/63/79.html +http://yp.gates96.com/8/43/64/73.html +http://yp.gates96.com/8/43/64/80.html +http://yp.gates96.com/8/43/66/26.html +http://yp.gates96.com/8/43/66/70.html +http://yp.gates96.com/8/43/67/16.html +http://yp.gates96.com/8/43/68/11.html +http://yp.gates96.com/8/43/69/74.html +http://www.fogdog.com/cedroID/ssd3040183354487/nav/products/winter_sports/1d/mid-weight_bottoms/ +http://www.fogdog.com/cedroID/ssd3040183354487/nav/products/winter_sports/1r/avalanche_safety/ +http://www.fogdog.com/cedroID/ssd3040183354487/boutique/marmot/ +http://www.affiliate.hpstore.hp.co.uk/do/session/380898/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.france.hp.com/Main/acheterhp/ +http://www.nd.edu/~dtl/cheg258/unix/unixhelp1.2/Pages/tasks_rm1.1.1.html +http://se.egroups.com/post/cyclesi?act=reply&messageNum=137 +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=22,0+18,0+22,0+9,4 +http://cidade.subportal.com/sn/Games/Action_Games/8120.html +http://wiem.onet.pl/wiem/0115d9-rp1.html +http://www.ferien-immobilien.de/detmold/Verkauf/Gemeinsam/Inserieren/Allgemeine-IB/Startseite/Gemeinsam/MarketingStrategie/Gemeinsam/erreichen.htm +http://retailer.gocollect.com/do/session/1912826/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/product_display/products/product_lines.asp +http://retailer.gocollect.com/do/session/1912826/vsid/2092/tid/2092/cid/569192/mid/1540/rid/1980/chid/2085/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLl0/url/http://www.gocollect.com/halloween/halloween.asp +http://www.iabusnet.org:90/forums/aca-1/dispatch.exe/survey/listUnseen/fol/100001/20,0/2542788 +http://www.dispatch.co.za/1998/06/25/easterncape/BISHO.HTM +http://pub24.ezboard.com/fsosatanfrm1.showMessage?topicID=48.topic +http://ftpsearch.belnet.be/ftp/packages/Linux-docs/howto/other-formats/INDEX +http://www.crosswinds.net/~mluotto/noframe/feedback/form2.htm +http://www.schoolweb.nl/studentensteden/Rotterdam/SVRGaudium/info.cfm +http://www.shopworks.com/index.cfm/action/directory/userid/0000BD9A-2F67-19FE-9038010B0A0ADCF2 +http://findmail.com/messages/masterhuen/802 +http://www.t-dialin.net/navkopf/service/websvkaa.htm +http://gallery2.simplenet.com/lobby/main/videocaps/ebaral/bigvalley/ebbva19.htm +http://gallery2.simplenet.com/lobby/main/videocaps/ebaral/bigvalley/ebbva31.htm +http://www.outpersonals.com/cgi-bin/w3com/pws/out/44hIVEhY5ZrKWoMKb0FtjCXhqcpntVLId5WTaJdeZmonn200jiiswYnK2vORJkjpm-x643ZCeLyy6kJnIAKa5rNx_42I13Ud9N03G9xPob7Hoci92HJhOlbEv4WsB85Au-cLXFlIHPd866jS +http://ftp.debian.org/debian/dists/Debian2.2r0/main/binary-all/editors/?D=A +http://ftp1.support.compaq.com/patches/public/Digital_UNIX/v3.2g/mailworks/2.0/?S=A +http://www.digitalhearth.com/Recipes/World_Cuisines/South_Asian/Indian/index5.html +http://ftp.gigabell.net/pub/Stormix/dists/rain/main/?M=A +http://www.stas.net/1/theparamanor/apartment.htm +http://www.netcom.com/~gfenzil/free.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/misc/misc/thoughts/math/legendes/pages_new.html +http://www.eleves.ens.fr:8080/home/madore/index.shtml.fr/lit/misc/misc/thoughts/math/legendes/misc/orders_mag.html +http://dandini.cranfield.ac.uk/vl=-39658948/cl=171/nw=1/rpsv/catchword/routledg/13606719/contp1-1.htm +http://genforum.genealogy.com/cgi-genforum/forums/pugsley.cgi?81 +http://www.users.globalnet.co.uk/~mmayes/pages/cross.htm +http://dic.empas.com/show.tsp/?s=d&q=%C4%A7%BD%C7 +http://www.jamba.de/KNet/_KNet-rHP8j1-lHd-13f16/browse.de/node.0/cde7f1uou +http://library.bangor.ac.uk/search/aHolmgren,+Nils+Fritiof,+1877-1954/aholmgren+nils+fritiof+1877+1954/7,1,1,B/marc&F=aholmlund+chris&1,1, +http://www.spiral.at/Katalog/Artikel/0181030/ +http://www.spiral.at/Katalog/Artikel/0181242/ +http://www.generation-formation.fr/navig.htm---o21zAo06L2o0Ol9A074fo6VJGezMkEeIgI8eOkn2ApvFFo6Td4ezyr6feZJPdspt6dsSAtdsNhJdspt6dsrvrdjlhkfbz.htm +http://www.nextmedia.com.hk/netgirl/sport/images/chelsea/ch-30.htm +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,5-9,0-15,0-17,0 +http://www.realize.com/i82.htm,qt=35665aa9=645a273f-1a-31fa805-1-0-0-0-- +http://www.eud.com/1998/06/21/21121AA.shtml +http://www.eud.com/1998/06/21/21414AA.shtml +http://www.eud.com/1998/06/21/21434AA.shtml +http://chemtech.chinamarket.com.cn/E/Showdetail_company/5569.html +http://chemtech.chinamarket.com.cn/E/Showdetail_company/1095.html +http://www.ferien-immobilien.de/baden-wuertemberg/konstanz/Verkauf/Private-IB/Allgemeine-IB/Startseite/Gemeinsam/Immolink/Gemeinsam/MarketingStrategie/inhalt.htm +http://www.ferien-immobilien.de/baden-wuertemberg/konstanz/Verkauf/Private-IB/Allgemeine-IB/Startseite/Gemeinsam/Immolink/Gemeinsam/versicherungen/gebaeude/deckungsumfang.htm +http://retailer.gocollect.com/do/session/1912886/vsid/2312/tid/2312/cid/573127/mid/1020/rid/2147/chid/2210/parser/yes/imtarget/ImMainFrame/imref/eqqLmwlGltt5tkdHlZlLiibLZqkKZljLlZe5ofpLqjXLpl4/url/http://www.gocollect.com/company_info/terms_and_conditions.asp +http://eagle.synet.edu.cn/mirror/www.tuc.org.uk/ +http://eagle.synet.edu.cn/mirror/dcarolco.lanminds.com/home/ +http://www.chez.com/carabanon/Pagecabanon.htm +http://poetry.lezlisoft.com/kikelet/spiritualitas/lelekszinpad.shtml +http://lateline.muzi.net/ll/fanti/81373.shtml +http://www.egroups.com/message/vacuum/1140 +http://www.egroups.com/message/vacuum/1153 +http://www.egroups.com/message/vacuum/1157 +http://no.egroups.com/message/-1friendsliste/401 +http://no.egroups.com/message/-1friendsliste/411 +http://pike-community.org/(base=/forums/show.html,explode=146,forum=7,t=972959520359311)/forums/show.html +http://pike-community.org/(base=/forums/show.html,explode=512,forum=7,t=972959520359311)/forums/show.html +http://pike-community.org/(base=/forums/show.html,forum=7,show=413,t=972959520359311)/forums/show.html +http://pike-community.org/(base=/forums/show.html,forum=7,show=423,t=972959520359311)/forums/show.html +http://pike-community.org/(base=/forums/show.html,forum=7,show=761,t=972959520359311)/forums/show.html +http://pike-community.org/(base=/forums/show.html,forum=7,show=777,t=972959520359311)/forums/show.html +http://pike-community.org/(base=/forums/show.html,forum=7,show=831,t=972959520359311)/forums/show.html +http://astro1.cnu.ac.kr/NetBBS/Bbs.dll/bulletin/qry/zka/B2-kC2Jo/qqa/r +http://www.gbnf.com/genealog2/brothers/html/d0049/I1011.HTM +http://www.intellicast.com/Golf/World/UnitedStates/Midwest/Ohio/Zanesville/CurrentWinds/ +http://www.nada.kth.se/systemgruppen/docs/javadoc/jdk-1.3/docs/api/javax/swing/text/class-use/TabSet.html +http://www.my-cat.de/hunde/zucht/file24.htm +http://194.128.65.4/pa/cm199899/cmwib/wb981128/edms.htm +http://www.gutenberg2000.de/sagen/austria/tirol/adasbub.htm +http://www1.onelist.com/message/osaki/22 +http://www.highwired.net/ESchoolDrive/JumpPage/1,5565,25179-46,00.html +http://pcmagazin.de/download/library/deADW-wc.htm +http://www.affiliate.hpstore.hp.co.uk/do/session/380873/vsid/1148/tid/1148/cid/74115/mid/1001/rid/1003/chid/1050/parser/yes/imref/eqqLmwlGltt5tkeHmjbHumlLkZl5jlcHol4/url/http://www.hp-creativeworld.com/creativeworld.asp?lang=f +http://cscns.csc.gifu.gifu.jp/pushcorn-kit/tanigumi/paged/0300214020000147.html +http://cscns.csc.gifu.gifu.jp/pushcorn-kit/tanigumi/paged/0300214020002363.html +http://cscns.csc.gifu.gifu.jp/pushcorn-kit/tanigumi/paged/0300214020001617.html +http://cpan.nitco.com/modules/by-module/String/MLEHMANN/?N=D +http://www.rge.com/pub/tex/language/ethiopia/ethtex/lqh_fonts/ +http://130.158.208.53/WWW/PDB2/PCD4711/htmls/41.html +http://www.thisislancashire.co.uk/lancashire/archive/1997/05/15/LEIGH0VQ.html +http://www.thisislancashire.co.uk/lancashire/archive/1997/05/15/LEIGH10VQ.html +http://southwind.tukids.tucows.com/mac/parents/adnload/72310_26093.html +http://ftp1.support.compaq.com/public/vms/vax/v7.2/dsnlink/2.2/dsnlinke022.a-dcx_vaxexe +http://wynnsystems.com/i.I_5aGd/search/listCompanies.html +http://www.pobladores.com/territorios/juegos/Zhief_Fantasy_World/info +http://www.pobladores.com/territorios/juegos/Zhief_Fantasy_World/pagina/9 +http://www.aebius.com/rpm2html/contrib/libc5/i386/usr_sbin_Tree.html +http://info.rutgers.edu/cgi-bin/RUInfo/TallyStats/name=WebRequest&exec=buildlimit&limit=9,0-22,0-0,0-9,4 +http://polygraph.ircache.net:8181/services/define/http_-2www.fastcounter.com/noframes/specials.htm +http://polygraph.ircache.net:8181/services/define/http_-2www.fastcounter.com/noframes/sitebuilder.htm +http://www.jamba.nl/KNet/_KNet-7YT8j1-nD4-pxan/browse.nl/node.0/cdmvcam7k +http://www.outdoorwire.com/content/lists/jeepoffroad/200010/msg00234.html?{LoadingFrameset} +http://www-uk8.cricket.org/link_to_database/ARCHIVE/2000-01/ENG_IN_PAK/ENG_IN_PAK_OCT-DEC2000_ENG-SQUAD.html +http://www-uk8.cricket.org/link_to_database/ARCHIVE/CRICKET_NEWS/2000/OCT/057670_CI_25OCT2000.html +http://www.chaos.dk/sexriddle/c/c/e/k/ +http://ben.aspads.net/ex/c/190/608504034 +http://forum.rai.it/aca-finestre/dispatch.cgi/FORUM/folderFrame/100001/0/alpha/2040958 +http://www.teacherformation.org/html/od/facilitators.cfm/task1,help/discussion_id,2/xid,5237/yid,3113916 +http://www.mirror.edu.cn/res/www.isoc.org/inet98/proceedings/7d/ +http://www.sumthin.nu/archives/bugtraq/Nov_1998/msg00058.html +http://proxy.tiscover.com/1Root/Kontinent/6/Staat/7/Bundesland/20/Regionen/regionen_az...2.html +http://www.streetprices.com/products/sortdetailbylowprice/SP142252.html +http://www.streetprices.com/products/sortdetailby1day/SP142252.html +http://pp3.shef.ac.uk:4040/form/path=1,+%3A%22countryName%3DGB%40organizationName%3DUniversity+of+Sheffield%40organizationalUnitName%3DFinance%40commonName%3DS+Green%22 +http://travelocity-dest.excite.com/DestGuides/0,1840,TRAVELOCITY|2662|3|1|239114,00.html +http://www.maastrek.de/maas/4a73999ddfd2d79be20a/1/0/5 +http://aol.weather.com/weather/cities/us_pa_fairview.html +http://aol.weather.com/weather/cities/us_pa_fort_loudon.html +http://javatest.a-net.nl/servlet/pedit.Main/http://www.tigerden.com/junkmail/compladdr.html +http://ftp.dti.ad.jp/pub/windows/forest/file/backup/press1/?M=A +http://www.contest.edu.tw/85/endshow/5/baseball/news/97feb/0225t_1c.html +http://www.contest.edu.tw/85/endshow/5/baseball/news/97feb/0225c_3c.html +http://www.contest.edu.tw/85/endshow/5/baseball/news/97feb/0217c_2c.html +http://www.contest.edu.tw/85/endshow/5/baseball/news/97feb/0216c_play.html +http://www.contest.edu.tw/85/endshow/5/baseball/news/97feb/0214co_1c.html +http://preview.egroups.com/messages/decoratingplusnews/6 +http://astro1.chungnam.ac.kr/NetBBS/Bbs.dll/bulletin/rcm/zka/B2-kC23n/qqatt/^
\ No newline at end of file diff --git a/snappy-1.1.0/testdata/xargs.1 b/snappy-1.1.0/testdata/xargs.1 new file mode 100644 index 0000000..a9f39a7 --- /dev/null +++ b/snappy-1.1.0/testdata/xargs.1 @@ -0,0 +1,112 @@ +.TH XARGS 1L \" -*- nroff -*- +.SH NAME +xargs \- build and execute command lines from standard input +.SH SYNOPSIS +.B xargs +[\-0prtx] [\-e[eof-str]] [\-i[replace-str]] [\-l[max-lines]] +[\-n max-args] [\-s max-chars] [\-P max-procs] [\-\-null] [\-\-eof[=eof-str]] +[\-\-replace[=replace-str]] [\-\-max-lines[=max-lines]] [\-\-interactive] +[\-\-max-chars=max-chars] [\-\-verbose] [\-\-exit] [\-\-max-procs=max-procs] +[\-\-max-args=max-args] [\-\-no-run-if-empty] [\-\-version] [\-\-help] +[command [initial-arguments]] +.SH DESCRIPTION +This manual page +documents the GNU version of +.BR xargs . +.B xargs +reads arguments from the standard input, delimited by blanks (which can be +protected with double or single quotes or a backslash) or newlines, +and executes the +.I command +(default is /bin/echo) one or more times with any +.I initial-arguments +followed by arguments read from standard input. Blank lines on the +standard input are ignored. +.P +.B xargs +exits with the following status: +.nf +0 if it succeeds +123 if any invocation of the command exited with status 1-125 +124 if the command exited with status 255 +125 if the command is killed by a signal +126 if the command cannot be run +127 if the command is not found +1 if some other error occurred. +.fi +.SS OPTIONS +.TP +.I "\-\-null, \-0" +Input filenames are terminated by a null character instead of by +whitespace, and the quotes and backslash are not special (every +character is taken literally). Disables the end of file string, which +is treated like any other argument. Useful when arguments might +contain white space, quote marks, or backslashes. The GNU find +\-print0 option produces input suitable for this mode. +.TP +.I "\-\-eof[=eof-str], \-e[eof-str]" +Set the end of file string to \fIeof-str\fR. If the end of file +string occurs as a line of input, the rest of the input is ignored. +If \fIeof-str\fR is omitted, there is no end of file string. If this +option is not given, the end of file string defaults to "_". +.TP +.I "\-\-help" +Print a summary of the options to +.B xargs +and exit. +.TP +.I "\-\-replace[=replace-str], \-i[replace-str]" +Replace occurences of \fIreplace-str\fR in the initial arguments with +names read from standard input. +Also, unquoted blanks do not terminate arguments. +If \fIreplace-str\fR is omitted, it +defaults to "{}" (like for `find \-exec'). Implies \fI\-x\fP and +\fI\-l 1\fP. +.TP +.I "\-\-max-lines[=max-lines], -l[max-lines]" +Use at most \fImax-lines\fR nonblank input lines per command line; +\fImax-lines\fR defaults to 1 if omitted. Trailing blanks cause an +input line to be logically continued on the next input line. Implies +\fI\-x\fR. +.TP +.I "\-\-max-args=max-args, \-n max-args" +Use at most \fImax-args\fR arguments per command line. Fewer than +\fImax-args\fR arguments will be used if the size (see the \-s option) +is exceeded, unless the \-x option is given, in which case \fBxargs\fR +will exit. +.TP +.I "\-\-interactive, \-p" +Prompt the user about whether to run each command line and read a line +from the terminal. Only run the command line if the response starts +with `y' or `Y'. Implies \fI\-t\fR. +.TP +.I "\-\-no-run-if-empty, \-r" +If the standard input does not contain any nonblanks, do not run the +command. Normally, the command is run once even if there is no input. +.TP +.I "\-\-max-chars=max-chars, \-s max-chars" +Use at most \fImax-chars\fR characters per command line, including the +command and initial arguments and the terminating nulls at the ends of +the argument strings. The default is as large as possible, up to 20k +characters. +.TP +.I "\-\-verbose, \-t" +Print the command line on the standard error output before executing +it. +.TP +.I "\-\-version" +Print the version number of +.B xargs +and exit. +.TP +.I "\-\-exit, \-x" +Exit if the size (see the \fI\-s\fR option) is exceeded. +.TP +.I "\-\-max-procs=max-procs, \-P max-procs" +Run up to \fImax-procs\fR processes at a time; the default is 1. If +\fImax-procs\fR is 0, \fBxargs\fR will run as many processes as +possible at a time. Use the \fI\-n\fR option with \fI\-P\fR; +otherwise chances are that only one exec will be done. +.SH "SEE ALSO" +\fBfind\fP(1L), \fBlocate\fP(1L), \fBlocatedb\fP(5L), \fBupdatedb\fP(1) +\fBFinding Files\fP (on-line in Info, or printed) |